請隨時讓我知道這是否是一個重復的問題。
從
in_arr1 = np.array([[2,0], [-6,0], [3,0]])
我怎樣才能得到:
diffInElements = [[5,0]]?
我試過了,np.diff(in_arr1, axis=0)但它沒有產生我想要的。有我可以使用的 NumPy 函式嗎?
干杯,
uj5u.com熱心網友回復:
您想從第一行中減去剩余的行。直截了當的答案就是:
>>> arr = np.array([[2, 1], [-6, 3], [3, -4]])
>>> arr[0, :] - arr[1:, :].sum(0)
array([5, 2])
然而,還有一個更高級的選項,它使用reduce()numpy ufuncs的有點晦澀的方法:
>>> np.subtract.reduce(arr, axis=0)
array([5, 2])
uj5u.com熱心網友回復:
您可以取反,然后對除第一個值之外的所有值求和,然后添加第一個值:
diff = (-a[1:]).sum(axis=0) a[0]
輸出:
>>> diff
array([5, 0])
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/389395.html
上一篇:如何將NumPyMaskedArray的掩碼設定為False?
下一篇:多次呼叫函式的不同回傳值
