【问题标题】:Numpy matrix multiplication behaviourNumpy矩阵乘法行为
【发布时间】:2017-03-04 16:08:50
【问题描述】:

我在理解 numpy 中的矩阵乘法时遇到了问题。 例如,我有以下矩阵(二维 numpy 数组):

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

以及下面的行向量theta:

theta = [ 1. 1. ]

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

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

当我将矩阵和行向量相乘时(不转换)

result = np.dot(a,theta)

我明白了:

result = [ 2. 3. 4. ]

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

【问题讨论】:

标签: python numpy multidimensional-array matrix-multiplication


【解决方案1】:

不,您将 numpy 数组与另一个 numpy 数组(不是带有向量的矩阵)相乘,尽管它看起来像那样。这是因为,本质上,numpy 数组与矩阵不同。点积也是这样处理的。

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

PS:(矩阵是二维的,而数组不限于任何维度

另外,请查看this answerthis excellent answer

【讨论】:

    猜你喜欢
    • 2012-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-22
    • 2015-01-07
    相关资源
    最近更新 更多