a = [1, 2, 3]
b = [10, 10, 10]
np.matmul(a,b)给出60作为结果。
numpy如何乘以(3,)和(3,)维度并返回点积而非外积(3 * 3)或抛出错误“维度不匹配”?
这直接来自numpy.matmul()
的文档:
- 如果第一个参数是1-D,则通过在其维度前加1来将其提升为矩阵。在矩阵乘法之后,移除前置1。
- 如果第二个参数是1-D,则通过在其维度上附加1来将其提升为矩阵。在矩阵乘法之后,移除附加的1。
因此,在矩阵乘法期间,输入a
和b
的形状分别被转换为(1, 3)
和(3,1)
。
根据矩阵乘法的规则,我们知道:
1 x 3
3 x 1
| |
-------- ===>总结过来。
因此,我们得到结果作为标量。