矩阵乘法奇怪的错误

时间:2017-03-21 18:52:50

标签: python numpy

这就是我现在3个小时挣扎的问题; / 在与numpy的python中,我做了简单的乘法,如:

matrix.T * matrix

,其中m是我的矩阵 但即使在我的大脑中一切正常(大小匹配正确),我仍然会收到错误消息:

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

为什么? 20不匹配20?我怎么了; D?

提前致谢

2 个答案:

答案 0 :(得分:3)

矩阵乘法是NumPy中的dot方法,或@运算符,如果您使用的是最新的Python和NumPy:

matrix.T.dot(matrix)

matrix.T @ matrix

或(如果你有最近的NumPy,但是最近的Python不够)

np.matmul(matrix.T, matrix)

请注意,NumPy的matrix类行为不同,但您应该从不使用

答案 1 :(得分:3)

您的matrix变量用词不当。你拥有的是一个多维数组。

您只需使用np.dot来乘以数组:

matrix.T.dot(matrix)

如果您实际上使用np.matrix创建了矩阵,则该乘法可以正常运行