Numpy ValueError:操作数不能与形状(3,4)(3,3)一起广播

2024-04-26 00:23:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我得到了错误:

ValueError: operands could not be broadcast together with shapes (3,4) (3,3)

z= np.arange(12).reshape(3,4)
m= np.arange(9).reshape(3,3)
z * m

错误:

ValueError: operands could not be broadcast together with shapes (3,4) (3,3)


Tags: 错误withnpnotbecouldbroadcasttogether
2条回答
import numpy as np
z= np.arange(12).reshape(3,4)
m= np.arange(9).reshape(3,3)

print(np.dot(m,z))
## [[ 20  23  26  29]
## [ 56  68  80  92]
## [ 92 113 134 155]]

print(np.dot(z.T,m))
##[[ 60  72  84]
##[ 69  84  99]
##[ 78  96 114]
##[ 87 108 129]]

为了能够将这些矩阵相乘,它们应该沿相乘方向共享相同的维数:

Z[3x4]*M[3x3]无法计算,因为Z矩阵上有四列

为了能够将它相乘,你应该或者建立不同的z矩阵或者转换它

在这个例子中,我在做乘法运算之前转换矩阵的维数:Z[4x3]*M[3x3]=ZM[4x3]:

np.dot(z.T, m)

相关问题 更多 >