2
對於結果矩陣中的每個位置,我不想將相應的行和列的點積存儲在自變量矩陣中,而是希望存儲元素明智的積,這將成爲向第三維擴展的向量。如何用新維度中的連接替換numpy矩陣乘法中的求和?
一個想法是將參數矩陣轉換爲向量與向量條目,然後採取他們的外部產品,但我不知道如何做到這一點。
編輯:
我計算出來之前,我看到有一個答覆。這裏是我的解決方案:
def newdot(A, B):
A = A.reshape((1,) + A.shape)
B = B.reshape((1,) + B.shape)
A = A.transpose(2, 1, 0)
B = B.transpose(1, 0, 2)
return A * B
什麼我做的是拆開每行和每列一對將爲其外產品,並形成他們的兩個列表,然後得到他們的內容在並行矩陣相乘。
你可以用'm1.A [:,None,:]'替換你的整形,這使得它更緊湊,並且(我認爲)更具可讀性。 – Jaime