#### Previous topic

numpy.ediff1d

#### Next topic

numpy.cross

# numpy.gradient

`numpy.``gradient`(f, *varargs, **kwargs)

  Return the gradient of an N-dimensional array.

  The gradient is computed using second order accurate central differences in the interior and either first differences or second order accurate one-sides (forward or backwards) differences at the boundaries. The returned gradient hence has the same shape as the input array.

  Parameters: | f : array_like An N-dimensional array containing samples of a scalar function. varargs : list of scalar, optional N scalars specifying the sample distances for each dimension, i.e. dx, dy, dz, ... Default distance: 1. edge_order : {1, 2}, optional Gradient is calculated using Nth order accurate differences at the boundaries. Default: 1. New in version 1.9.1.
  Returns: | gradient : ndarray N arrays of the same shape as f giving the derivative of f with respect to each dimension.

  Examples

      >>> x = np.array([1, 2, 4, 7, 11, 16], dtype=np.float)
      >>> np.gradient(x)
      array([ 1. ,  1.5,  2.5,  3.5,  4.5,  5. ])
      >>> np.gradient(x, 2)
      array([ 0.5 ,  0.75,  1.25,  1.75,  2.25,  2.5 ])

      >>> np.gradient(np.array([[1, 2, 6], [3, 4, 5]], dtype=np.float))
      [array([[ 2.,  2., -1.],
              [ 2.,  2., -1.]]), array([[ 1. ,  2.5,  4. ],
              [ 1. ,  1. ,  1. ]])]

      >>> x = np.array([0, 1, 2, 3, 4])
      >>> dx = np.gradient(x)
      >>> y = x**2
      >>> np.gradient(y, dx, edge_order=2)
      array([-0.,  2.,  4.,  6.,  8.])