在矩阵乘法中,假设A
是一个3x 2矩阵(3行,2列),而B
是一个2x 4矩阵(2行,4列),那么如果一个矩阵C = A * B
,那么C
应该有3行和4列。为什么numpy不做乘法运算?当我尝试下面的代码时,我得到一个错误:ValueError: operands could not be broadcast together with shapes (3,2) (2,4)
a = np.ones((3,2))
b = np.ones((2,4))
print a*b
我试着调换A和B,得到了同样的答案。为什么?在这种情况下如何进行矩阵乘法?
numpy数组的
*
运算符是元素相乘(类似于相同维度数组的Hadamard乘积),而不是矩阵相乘。例如:
对于带numpy数组的矩阵乘法:
此外,还可以使用matrix类:
有关广播numpy数组的更多信息可以找到here,有关matrix类的更多信息可以找到here。
相关问题 更多 >
编程相关推荐