【问题标题】:What is the Logic behind this matrix multiplication?这个矩阵乘法背后的逻辑是什么?
【发布时间】:2019-06-22 12:00:22
【问题描述】:

我正在尝试将这些一维矩阵(或向量)彼此相乘,如下所示:

a = np.array([1,2,3]).reshape(1,3)

b = np.array([4,5,6]).reshape(1,3)

c = np.dot(a,b)

print(c) 将 ab 错误输出为“形状 (1,3) 和 (1,3) 未对齐”,根据矩阵乘法定律这是正确的。

但是当我执行 c = a*bprint(c) 时,我得到一个 1 x 3 矩阵 - array([[ 4, 10, 18]])

我的问题是 1 X 3 * 1 X 3 矩阵乘法如何产生 1 X 3 矩阵?第一个矩阵的列应该等于第二个矩阵的行。不是吗?

此外,如果你们中的任何人都可以提供更多关于 2 个形状 (i,j) 矩阵的点积与其乘法的不同之处的信息,那就太好了a*b

【问题讨论】:

  • (1,3), (3,1) 将是正确的矩阵乘法。点然后会做 matmul 。另一方面,multipy-operator 是 elementwise 的。

标签: python-3.x numpy matrix matrix-multiplication


【解决方案1】:

dot 方法像您期望的那样执行矩阵乘法。 * 运算符采用两个相同维度的矩阵并将其对应的元素相乘,从而产生相同维度的结果。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-22
    • 1970-01-01
    • 1970-01-01
    • 2017-10-17
    • 1970-01-01
    • 2011-02-21
    相关资源
    最近更新 更多