其他分享
首页 > 其他分享> > operands could not be broadcast together with shapes (160000,4) (4,4)

operands could not be broadcast together with shapes (160000,4) (4,4)

作者:互联网

python日常错误:

错误1:

operands could not be broadcast together with shapes (160000,4) (4,4)

操作数不能与形状(160000,4)(4,4)一起广播

错误代码:

 

 对,你没看错,仅仅就是这一行

分析:

这里的变量a,b,c,d不是一个数,而是一群数,也就是每一个都代表着一个矩阵,之所以不能直接矩阵相乘,是因为python的“*”,如果是矩阵相乘的话,必须是行列数一致,然后对应元素相乘

如果想实现矩阵乘法的话,需要用到numpy.dot()函数,numpy的点积函数

修改后:

 

仍然是错误的

错误2:

operands could not be broadcast together with shapes (160000,4) (4,4)

分析:

虽然错误一致,但是错误的原因不同,有时候错误发生的原因却是不一样的

这里已经用到点积了,去计算矩阵乘法,为什么还会出现错误呢?

因为c的shape是(160000,4) 而矩阵乘法得到的px是(4,4)的,与矩阵乘法一样,“/”依旧不能进行矩阵除法,也就是说(160000,4) 和(4,4)的矩阵不能直接相除

其实错误的原因在第一行,a矩阵是(4,1)的,b矩阵是(1,4)的,正确的方式应该是

把a,b交换位置,矩阵乘法后得到(1,1)的矩阵或者说一个数,此时便可以直接相除了

 

标签:broadcast,operands,错误,could,矩阵,shapes,160000,乘法
来源: https://www.cnblogs.com/zyssj/p/16695156.html