По этой
ссылке репозитарий с реализацией вашей задачи на чистом numpy (python библиотека), которая предоставляет векторизованный массив. (все функции написаны вручную)
не каких ML алгоритмов из коробки не используется.
Реализуйте на том языке на котором вам необходимо. Я думаю иметь готовый код без ML библиотек это хорошее начало для решения вашей проблемы.
Так же автор репозитария написал статью на
https://towardsdatascience.com/ вы можете зарегистрироваться там они дают по моему три бесплатные статьи в месяц и изучить его статью, как весь процесс организовать и т.д. Название статьи "MNIST Handwritten digits classification from scratch using Python Numpy".