def gradient(X,Y,theta):
m = X.shape[0]
grad = np.zeros((2,))
for i in range(m):
y_ = hypthesis(X[i],theta)
y = Y[i]
grad[0] += (y_ - y)
grad[1] += (y_ - y)*x
return grad/m
EVEN THOUGH I HAVE DEFINED y = Y[i], in this function