【发布时间】:2019-12-27 03:03:39
【问题描述】:
我试图将两个矩阵相乘,这给了我一个错误“形状 (2,3) 和 (2,3) 未对齐:3 (dim 1) != 2 (dim 0)”。代码如下。请让我知道我做错了什么?
from numpy import *
arr=array([[1,32,3],[2,4,6]])
arr1=array([[1,2,39],[2,41,6]])
m=matrix(arr)
m1=matrix(arr1)
print(m)
print(m1)
mat=m1*m;
【问题讨论】:
-
这是关于基本线性代数定义的数学错误,而不是编程问题。您不能将 2*3 矩阵乘以 2*3 矩阵,因为矩阵乘法的定义根本不适用于该场景,因为组合线性变换 w.r.t. 的基本数学解释。在这种情况下,某些基础不能适用。你到底想做什么?
-
现在几乎没有理由使用
np.matrix。使用原始的ndarray、np.dot(arr,arr1)或arr@arr1执行相同的操作 - 矩阵乘法。基本规则(你应该从学校数学中记住)是arr的最后一个维度应该匹配arr1的第二个到最后一个维度。arr*arr1应该可以工作,因为所有尺寸都匹配。但这是逐元素乘法。 -
@ReinstateMonica-ζ-- 我只是想做简单的矩阵乘法。非常感谢。但我现在真的觉得自己好傻。大声笑
标签: python numpy matrix-multiplication