在 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]])
我有一个 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]])