Python 简单的矩阵乘法会抛出一个错误;形状(2,3)和(2,3)未对齐:3(尺寸1)!=2(尺寸0)“;?
我试图将两个矩阵相乘,这给了我一个错误“形状(2,3)和(2,3)未对齐:3(尺寸1)!=2(尺寸0)”。代码如下所示。请让我知道我做错了什么Python 简单的矩阵乘法会抛出一个错误;形状(2,3)和(2,3)未对齐:3(尺寸1)!=2(尺寸0)“;?,python,numpy,matrix-multiplication,Python,Numpy,Matrix Multiplication,我试图将两个矩阵相乘,这给了我一个错误“形状(2,3)和(2,3)未对齐:3(尺寸1)!=2(尺寸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; 如果您尝试执行
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;
如果您尝试执行元素级乘法(即,1*1、32*2、3*39、2*2、4*41、6*6),那么您将需要使用numpy.multiply
import numpy as np
a = np.matrix([[1,32,3],[2,4,6]])
b = np.matrix([[1,2,39],[2,41,6]])
np.multiply(a,b)
哪个返回这个
matrix([[ 1, 64, 117],
[ 4, 164, 36]])
如果你真的想做矩阵乘法(线性代数),请参阅上面其他人的评论。这是关于基本线性代数定义的数学错误,而不是编程问题。不能将2*3矩阵乘以2*3矩阵,因为矩阵乘法的定义根本不适用于该场景,因为构成线性变换的基本数学解释w.r.t.某些基础不适用于此类场景。你到底想做什么?现在几乎没有理由使用
np.matrix
。使用原始的ndarray
,np.dot(arr,arr1)
或arr@arr1
做同样的事情-矩阵乘法。基本规则(你应该从学校数学中记住)是arr
的最后一个维度应该与arr1
的第二个到最后一个维度相匹配arr*arr1
应该可以工作,因为所有维度都匹配。但这是元素级乘法-,ζ-,我只是想做简单的矩阵乘法。非常感谢你。但我现在真的觉得自己很愚蠢。英雄联盟