NumPy | gradient method
Start your free 7-days trial now!
Numpy's gradient(~)
method computes the gradients given data points, where the gradient is defined as the changes in y over the changes in x.
Parameters
1. f
| array-like
The function output (y-values).
2. varargs
| array
of scalar
| optional
The spacing between the pairs of points in f. By default, varargs=1
.
3. edge_order
| int
| optional
The order of accuracy used for the calculation at the edges. Allowed values are 1 and 2. By default, edge_order=2
.
4. axis
| None
or int
or tuple
of int
| optional
The axis along which to compute the gradient.
Return value
A Numpy array holding the gradients of the data points.
Examples
Basic usage
To compute the gradient using the default step-size of 1:
y = [1,2,4,9,16]np.gradient(y)
array([1. , 1.5, 3.5, 6. , 7. ])
Behind the scenes, the numbers are computed like so:
(y[1] - y[0]) / 1 = 1.0(y[2] - y[0]) / 2 = 1.5(y[3] - y[1]) / 2 = 3.5(y[4] - y[2]) / 2 = 6.0(y[4] - y[3]) / 1 = 7.0
Notice how at the boundaries, only the first difference is calculated.
Specifying spacing between data-points
Instead of the default step-size of 1, we can specify our own x-values:
x = [5,10,20,30]y = [1,2,4,9]np.gradient(y, x)
array([0.2 , 0.2 , 0.35, 0.5 ])
Behind the scenes, the numbers are computed like so:
(y[1] - y[0]) / (x[1] - x[0]) = 0.2(y[2] - y[0]) / (x[2] - x[0]) = 0.2(y[3] - y[1]) / (x[3] - x[1]) = 0.35(y[3] - y[2]) / (x[3] - x[2]) = 0.5