原文:https://docs.scipy.org/doc/numpy/reference/generated/numpy.gradient.html
校对:(虚位以待)
numpy.
gradient
(f, *varargs, **kwargs)[source]返回N维数组的梯度。
计算梯度:内部使用二阶精确中心差,边界处使用一阶差或二阶精确单边(向前或向后)差。因此,返回的梯度具有与输入数组相同的形状。
参数: | f:array_like
varargs:标量或标量列表,可选
edge_order:{1,2},可选
axis:None、整数或整数元组,可选
|
---|---|
返回: | gradient : ndarray列表
|
例子
>>> 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.])
axis关键字可用于指定轴的一个子集来计算梯度
>>> np.gradient(np.array([[1, 2, 6], [3, 4, 5]], dtype=np.float), axis=0) array([[ 2., 2., -1.], [ 2., 2., -1.]]