将单个numpy数组的值添加到其他numpy数组中的所有列

H.C*_*hoi 6 python arrays numpy

我有两个numpy数组

A= array([[1,2,3,4],
          [5,6,7,8],
          [9,10,11,12]])

B = array([10,20,30])
Run Code Online (Sandbox Code Playgroud)

我想生成数组C:

C = array([11,12,13,14],
          [25,26,27,28],
          [39,40,41,42]])
Run Code Online (Sandbox Code Playgroud)

我尝试了一些方法..但它们似乎效率很低。有什么办法可以有效地做到这一点?

yat*_*atu 5

可以通过以下方式在一点点帮助下完成broadcasting:添加新轴BNone或与np.newaxis),使它们具有兼容的形状,并B可以在较大的数组上广播A

A + B[:,None]

array([[11, 12, 13, 14],
       [25, 26, 27, 28],
       [39, 40, 41, 42]])
Run Code Online (Sandbox Code Playgroud)