numpy数组中后续对的元素之间的差异(不是numpy.diff)

时间:2017-12-12 13:59:27

标签: python arrays numpy

有没有快速的方法来计算python数组中后续对中两个元素之间的差异?例如,请考虑x

x = np.array([1,5,3,8])

如何从x计算后续对之间的差异?我想要的输出是:

np.array([4,5])

1 个答案:

答案 0 :(得分:2)

你可以在2的步幅切片并减去:

>>> x[1::2] - x[::2]
array([4, 5])

另一个解决方案是重塑并致电np.diff

>>> np.diff(x.reshape(-1, 2), axis=1).ravel()     
array([4, 5])

适用于任何N * M数组的广义版本看起来像这样 -

r = np.diff(x.reshape(-1, 2), axis=1).reshape(-1, x.shape[1] // 2)