在文档的第一个示例中
http://docs.scipy.org/doc/numpy/reference/generated/numpy.gradient.html
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. ])
输出不应该是:
array([ 1. , 1., 2., 3., 4., 5. ])
???
最佳答案
Numpy-gradient 使用 forward
, backward
, 和 central
适当的差异。
输入:
x = np.array([1, 2, 4, 7, 11, 16], dtype=np.float)
np.gradient(x) # this uses default distance=1
输出:
array([ 1. , 1.5, 2.5, 3.5, 4.5, 5. ])
对于第一项,它使用前向差异:
(2 - 1)/1 = 1。
对于最后一项,它使用向后差异:
(16 - 11)/1 = 5。
并且,对于中间的项目,应用中心差异:
(4 - 1)/2 = 1.5
(7 - 2)/2 = 2.5
(11 - 4)/2 = 3.5
(16 - 7)/2 = 4.5
差异除以前向和后向差异的样本距离(默认值 = 1),但两倍于中心差异的距离以获得适当的梯度。
关于numpy - 如何解释 numpy.gradient?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29785840/