給定一個 numpy 陣列,說
x = np.array(
[[0],
[1],
[2]]
)
我想找到包含矩陣a-b的每個可能對a,b在x。IE
[[0-0, 0-1, 0-2]
[1-0, 1-1, 1-2]
[2-0, 2-1, 2-2]]
==
[[ 0, -1, -2]
[ 1, 0, -1]
[ 2, 1, 0]]
for為了效率,我避免使用回圈。
uj5u.com熱心網友回復:
正如邁克爾所寫,numpy 廣播可以幫助你解決這個問題。如果您嘗試對a形狀為 (3,1) 的向量b和形狀為 (1,3)的向量執行操作,則 numpy 下的將其視為 的行在跨行a重復的列和列b中重復導致您描述的操作。
這就是為什么邁克爾告訴你減去第一個向量的轉置與它自己來恢復你要求的結果。 x-x.T
廣播很好,因為它通過跨步實作這一點,并且大多數時間使用較少的記憶體。
在更一般的情況下,a并且b沒有相同的長度來作業。這里有更多細節:https :
//numpy.org/doc/stable/user/basics.broadcasting.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/334205.html
