簡體   English   中英

矩陣乘法奇怪的錯誤

[英]Matrix multiplication strange error

這是我現在從3個小時開始苦苦掙扎的問題; /在numpy的python中,我做了簡單的乘法,例如:

matrix.T * matrix

,其中m是我的矩陣,但即使在我的大腦中一切正常(大小正確匹配),我仍然不斷收到錯誤消息:

operands could not be broadcast together with shapes (5,20) (20,5) 

這是為什么? 20不匹配20嗎? 我怎么了; D?

提前致謝

矩陣乘法是NumPy中的dot方法,如果您使用的是最新的Python和NumPy,則使用@運算符:

matrix.T.dot(matrix)

要么

matrix.T @ matrix

或(如果您擁有足夠新的NumPy但沒有足夠的新Python)

np.matmul(matrix.T, matrix)

請注意,NumPy具有一個行為不同的matrix類,但是您絕對不要使用它

您的matrix變量用詞不當。 您擁有的是多維數組。

您可以簡單地使用np.dot將數組相乘:

matrix.T.dot(matrix)

如果您實際上使用np.matrix創建了矩陣,則該乘法將毫無問題地進行

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM