I wrote an article titled “Neural Networks using Python and NumPy” in the May 2017 issue of Visual Studio Magazine. See https://visualstudiomagazine.com/articles/2017/05/01/python-and-numpy.aspx.
Creating a neural network from scratch using Python isn’t trivial, but it’s a bit easier than you might expect. Because Python isn’t very fast, using raw Python isn’t feasible for neural networks with huge data sets.
But raw Python is feasible for moderately sized data sets. Creating a NN from scratch gives you complete control over your NN, which allows you to experiment with things like activation functions and back-propagation. Additionally, after coding a NN from scratch using Python, you’ll have a solid grasp of exactly what goes on behind the scenes when you use a library such as TensorFlow or CNTK.
In my article, I use explain in detail the NN input-output mechanism which is a key to understanding everything else about NNs. My demo code uses the NumPy library — weirdly, basic Python doesn’t have a array type so the NumPy add-on package is more or less required for any kind of machine learning code.