理解一维向量上的 np.matmul

Lis*_*isa 5 numpy matrix multidimensional-array matrix-multiplication numpy-ndarray

a = [1, 2, 3]
b = [10, 10, 10]
Run Code Online (Sandbox Code Playgroud)

np.matmul(a, b) 给出的结果是 60。

numpy 如何将 (3,) 和 (3,) 维度相乘并返回点积而不是外积 (3 * 3) 或抛出错误“维度不匹配”?

kma*_*o23 3

这直接来自以下文档numpy.matmul()

  • 如果第一个参数是一维的,则通过在其维度前添加 1 将其提升为矩阵。矩阵乘法后,前面的 1 被删除。
  • 如果第二个参数是一维的,则通过在其维度上附加 1 将其提升为矩阵。矩阵乘法后,附加的 1 被删除。

因此,在矩阵乘法期间,输入a和的形状分别b转换为(1, 3)和。(3,1)

根据矩阵乘法的规则,我们知道:

1 x 33 x 1
   | |
    -------- ===> 总结完毕。

因此,我们得到的结果是标量