在文档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. ])???
发布于 2015-04-22 13:37:22
您期望的输出是在运行np.diff时得到的,但是接下来一个元素会更短:
np.diff(arr)
>>> array([ 1., 2., 3., 4., 5.])np.gradient查看i'th元素,并查看(i+1)'th与i'th元素和(i-1)'th与i元素之间差异的平均值。对于边缘值,它只能使用一个点。因此,1.5的第二个值来自于平均(2-1)和(4-2)。
发布于 2016-01-20 16:33:47
Numpy-梯度在适当的地方使用forward、backward和central差异。
输入:
x = np.array([1, 2, 4, 7, 11, 16], dtype=np.float)
np.gradient(x) # this uses default distance=1输出:
数组( 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
将差异除以前向和后向差的样本距离(default=1),但中心差分的距离是中心差分的两倍,以获得适当的梯度。
https://stackoverflow.com/questions/29785840
复制相似问题