繁体   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