如何计算元素x[i+1]和x[i-1]之间的差异?

给定一个A大小为 的数组,n我想要一个函数,该函数返回一个R大小n-2R[i] = A[i+1] - A[i-1].

我试图检查选项,numpy.diff但显然它只计算连续元素之间的差异,即A[i+1] - A[i].

回答

您可以直接从最后 n-2 个值中减去前 n-2 个值的切片,反之亦然:

>>> r = numpy.array([1, 2, 3, 4, 5, 6])
>>> r[2:], r[:-2]
(array([3, 4, 5, 6]), array([1, 2, 3, 4]))
>>> r[:-2] - r[2:]   # r[i] = r[i-1] - r[i+1]
array([-2, -2, -2, -2])
>>> r[2:] - r[:-2]   # r[i] = r[i+1] - r[i-1]
array([2, 2, 2, 2])

切片和逐元素减法都是由执行的numpy,因此开销最小。


以上是如何计算元素x[i+1]和x[i-1]之间的差异?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>