首页 > 解决方案 > 数组广播

问题描述

我试图将两个 Numpy 数组相乘,但我收到了与广播相关的错误-

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-124-6e9219ae5e45> in <module>
----> 1 d=B*C.reshape(-1,1)

ValueError: operands could not be broadcast together with shapes (3,5,7) (3,1) 

我的数组是-

B=np.random.rand(5,7,3).T.swapaxes(2,1)
C=np.linspace(1,5,3)
d=B*C.reshape(-1,1)

你能解释一下这是什么错误以及我应该做什么吗?谢谢

标签: pythonnumpyarray-broadcasting

解决方案


您可以尝试将C数组的形状从更改(3,1)(3, 1, 1)

B=np.random.rand(5,7,3).T.swapaxes(2,1)
C=np.linspace(1,5,3)
d=B*C.reshape(-1,1, 1)

推荐阅读