如何计算形状 [0]>2 的 numpy 数组中每个元素的差异 b/w

How to calculate the difference b/w each element in an numpy array with a shape[0]>2

请随时告诉我这是否是重复问题。

来自 in_arr1 = np.array([[2,0], [-6,0], [3,0]])

我怎样才能得到: diffInElements = [[5,0]] ?

我试过 np.diff(in_arr1, axis=0) 但它没有生成我想要的。 有我可以使用的 NumPy 函数吗?

干杯,

您可以对除第一个值之外的所有值取反然后求和,然后添加第一个值:

diff = (-a[1:]).sum(axis=0) + a[0]

输出:

>>> diff
array([5, 0])

您想从第一行中减去剩余的行。直截了当的答案就是:

>>> arr = np.array([[2, 1], [-6, 3], [3, -4]])
>>> arr[0, :] - arr[1:, :].sum(0)
array([5, 2])

然而,还有一个更高级的选项,它利用了 numpy ufuncs 的有点晦涩的 reduce() 方法:

>>> np.subtract.reduce(arr, axis=0)
array([5, 2])