在numpy数组中沿特定维度减去的有效方法

efficient way of substracting along specific dimension in numpy array

我有一个 NumPy 数组 a,大小为 (1000,100,2)。

我只想从第一个维度迭代的最后一个维度中减去值。 换句话说:

a[i+1,j,[x1,y1]]-a[i,j,[x0,y0]]

获取大小为(999,100,2)的数组b 最后一个维度包含:

[x1-x0, y1-y0] , etc...

我知道如何使用 for 循环来做到这一点,我正在寻找更高效的“numpyzed”版本

看起来你想要np.diff

a = np.random.rand(1000, 100, 2)
b = np.diff(a, axis = 0)
b.shape
Out[]: (999, 100, 2)