当前位置:   article > 正文

广播机制broadcast_a[0] += self.rng.uniform(2.0*s, 4.0*s)operands cou

a[0] += self.rng.uniform(2.0*s, 4.0*s)operands could not be broadcast togeth

两个变量格式不统一,有时也可以运算:

情况1:两个数组各维度大小从后往前比对均一致。

如:

  1. A = np.zeros((2,5,3,4))
  2. B = np.zeros((3,4))
  3. print((A+B).shape) # 输出 (2, 5, 3, 4)
  4. A = np.zeros((4))
  5. B = np.zeros((3,4))
  6. print((A+B).shape) # 输出(3,4)

 情况2:两个数组存在一些维度大小不相等时,有一个数组的该不相等维度大小为1

  1. A = np.zeros((2,5,3,4))
  2. B = np.zeros((2,1,1,4))
  3. print((A+B).shape) # 输出:(2, 5, 3, 4)
  4. A = np.zeros((1))
  5. B = np.zeros((3,4))
  6. print((A+B).shape) # 输出(3,4)
  7. # 下面是报错案例
  8. A = np.zeros((2,5,3,4))
  9. B = np.zeros((2,4,1,4))
  10. print((A+B).shape)
  11. ValueError: operands could not be broadcast together with shapes (2,5,3,4) (2,4,1,4)
  12. 为啥报错?因为A和B的第2维不相等。并且都不等于1.

参考自:2个规则弄懂numpy的broadcast广播机制 - 知乎

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/472214
推荐阅读
相关标签
  

闽ICP备14008679号