如何计算形状 [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])
请随时告诉我这是否是重复问题。
来自
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])