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



我有两个 numpy 数组

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

我想生成数组 C:

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

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

可以在broadcasting的帮助下完成,方法是向B添加一个新轴(使用 Nonenp.newaxis (,以便它们具有兼容的形状,并且B可以在更大的数组中广播A

A + B[:,None]
array([[11, 12, 13, 14],
       [25, 26, 27, 28],
       [39, 40, 41, 42]])

请看这个例子:

    ethernet_devices = [1, [7], [2], [8374163], [84302738]]
    usb_devices = [1, [7], [1], [2314567], [0]]
    all_devices = [x + y for x, y in zip(ethernet_devices, usb_devices)]

资料来源: https://therenegadecoder.com/code/how-to-sum-elements-of-two-lists-in-python/

最新更新