Gradient Descent Python From Scratch