Neural Networks Explained from Scratch using Python