这个矩阵乘法背后的逻辑是什么?
What is the Logic behind this matrix multiplication?
我正在尝试将这些一维矩阵(或向量)相互相乘,如下所示:
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 错误为 'shapes (1,3) and (1,3) not aligned',根据矩阵乘法定律是正确的。
但是当我执行 c = a*b
和 print(c)
时,我得到一个 1 x 3 矩阵 - array([[ 4, 10, 18]])
.
我的问题是 1 X 3 * 1 X 3 矩阵乘法如何产生 1 X 3 矩阵?第一个矩阵的列应该等于第二个的行。不是吗?
此外,如果你们中的任何人能提供更多关于 2 个形状矩阵 (i,j) 的点积与其乘法的不同之处的更多信息,那就太好了 a*b
?
dot
方法可以像您期望的那样执行矩阵乘法。 *
运算符取两个相同维度的矩阵并将其对应的元素相乘,从而产生相同维度的结果。
我正在尝试将这些一维矩阵(或向量)相互相乘,如下所示:
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 错误为 'shapes (1,3) and (1,3) not aligned',根据矩阵乘法定律是正确的。
但是当我执行 c = a*b
和 print(c)
时,我得到一个 1 x 3 矩阵 - array([[ 4, 10, 18]])
.
我的问题是 1 X 3 * 1 X 3 矩阵乘法如何产生 1 X 3 矩阵?第一个矩阵的列应该等于第二个的行。不是吗?
此外,如果你们中的任何人能提供更多关于 2 个形状矩阵 (i,j) 的点积与其乘法的不同之处的更多信息,那就太好了 a*b
?
dot
方法可以像您期望的那样执行矩阵乘法。 *
运算符取两个相同维度的矩阵并将其对应的元素相乘,从而产生相同维度的结果。