这就是我现在3个小时挣扎的问题; / 在与numpy的python中,我做了简单的乘法,如:
matrix.T * matrix
,其中m是我的矩阵 但即使在我的大脑中一切正常(大小匹配正确),我仍然会收到错误消息:
operands could not be broadcast together with shapes (5,20) (20,5)
为什么? 20不匹配20?我怎么了; D?
提前致谢
答案 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
创建了矩阵,则该乘法可以正常运行