I really can not understand what numpy.gradient function does and how to use it for computation of multivariable function gradient.
numpy.gradient
For example
You could use scipy.optimize.approx_fprime
f = lambda x: x**2 approx_fprime(np.array([2]), f, epsilon=1e-6) # array([ 4.000001])