我正在做非常簡單的減法,但我做對了。我想從陣列的每一列中減去第一列。例如:
winner=
[1,2,3]
[2,3,5]
[3,5,7]
我想得到這樣的結果:
[0,1,2]
[0,1,3]
[0,2,4]
這是錯誤,我不知道該怎么做。
winner.shape
(5, 3)
winner_difference=winner-winner[:,0]
winner_difference
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-69-d385252ef2de> in <module>
----> 1 winner_difference=winner-winner[:,0].T
2 winner_difference
ValueError: operands could not be broadcast together with shapes (5,3) (5,)
uj5u.com熱心網友回復:
一種更有效的方法,利用 numpy 廣播:
output = winner - winner[:, 0, None]
輸出:
>>> output
array([[0, 1, 2],
[0, 1, 3],
[0, 2, 4]])
uj5u.com熱心網友回復:
使用串列推導式實作這是一件非常簡單的事情。
>>> winner = [[1,2,3], [2,3,5], [3,5,7]]
>>> [[y - x[0] for y in x] for x in winner]
[[0, 1, 2], [0, 1, 3], [0, 2, 4]]
>>>
uj5u.com熱心網友回復:
我相信您正在尋找:
winner - np.vstack(winner[0])
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/391872.html
上一篇:創建陣列的離散化版本
下一篇:從掩碼Python中獲取切片索引
