Numpy矩阵乘法行为

时间:2016-10-22 12:12:40

标签: python numpy multidimensional-array matrix-multiplication

我有一个问题需要理解numpy中的矩阵乘法。 例如,我有以下矩阵(2d numpy数组):

a = [ [ 1. 1. ]
      [ 1. 2. ]
      [ 1. 3. ] ]

以下行矢量theta:

theta = [ 1. 1. ]

与theta相乘的唯一方法是变换 首先在列向量中的θ,然后我会得到结果:

result = [ [ 2. ]
           [ 3. ]
           [ 4. ] ]

当我乘以矩阵和行向量(没有变换)

result = np.dot(a,theta)

我明白了:

result = [ 2. 3. 4. ]

这怎么可能?我的意思是,我没有改变矩阵。 你能告诉我这个numpy乘法是如何工作的吗? 谢谢你的关注。

1 个答案:

答案 0 :(得分:1)

不,你将numpy数组与另一个numpy数组(不是带矢量的矩阵)相乘,尽管它看起来像那样。这是因为,实质上,numpy数组与矩阵不同。点积也是这样对待的。

如果你写出数组并相乘,那你就会明白为什么。它只是数组'a'中每行的点积(元素乘法)和向量'theta'

PS :( 矩阵是2-D,而数组不限于任何维度

另外,请查看this answerthis excellent answer