在 numpy diff 中减去第一个和最后一个元素(环绕)

Subtract first and last element (wrap around) in numpy diff

我有一个 100000,6 的大数组,想找出向量中每个元素的差异。 np.diff 几乎正是我所需要的,但也希望它环绕并且它还发现第一个和最后一个元素的差异。

玩具模型:

array=np.array([[0,2,4],[0,3,6]])
np.diff(array,axis=1)

给予 [[2,2],[3,3]] 想要 [[2,2,-4],[3,3,-6]][[-4,2,2],[-6,3,3]]

numpy 中是否有内置的方法来执行此操作?

您可以使用 numpy.roll:

np.roll(array, -1, axis=1)-array

输出:

array([[ 2,  2, -4],
       [ 3,  3, -6]])