我有一个问题需要理解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乘法是如何工作的吗? 谢谢你的关注。
答案 0 :(得分:1)
不,你将numpy数组与另一个numpy数组(不是带矢量的矩阵)相乘,尽管它看起来像那样。这是因为,实质上,numpy数组与矩阵不同。点积也是这样对待的。
如果你写出数组并相乘,那你就会明白为什么。它只是数组'a'
中每行的点积(元素乘法)和向量'theta'
。
PS :( 矩阵是2-D,而数组不限于任何维度)