numpy中的broadcast,以maximum和加法为例

本文通过实例介绍了numpy中广播(broadcasting)的概念,以加法和maximum运算为切入点,展示了当两个操作数维度不匹配时,numpy如何自动扩展较小维度的数组以适应较大维度的数组,最终完成计算。例如,将一个一维数组与二维数组相加或求最大值,结果分别得到一个二维和三维的数组,体现了numpy广播的灵活性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用numpy对array进行maximum或加法操作,当两个参数的维度不同时,首先以加法为例。

>>>a = np.arange(5).reshape(-1,1)
>>>a                                                           # a shape is (3,1)
array([[0],
       [1],
       [2],
       [3],
       [4]])
>>>b = np.array([10,20,30])
b                                                          # b shape is (3,)
>>>array([10, 20, 30])
>>>a+b
array([[10, 20, 30],
       [11, 21, 31],
       [12, 22, 32],
       [13, 23, 33],
       [14, 24, 34]])                           #  a+b shape is (3,3)  用低维度的array与高维度中维度不同的axis依次相加

同理,以maximum为例,维度再加一级

>>>a = np.arange(6).reshape(-1,1,2)
>>>a
array([[[0, 1]],
       [[2, 3]],
       [[4, 5]]])                           # a shape is (3,1,2)

>>>b = np.array([[1.1,2.1],[2.2,3.2]])         # b shape is (2,2)

>>>np.maximum(a,b)
>>>array([[[1.1, 2.1],              原理与加法一致,首先a的维度高于b,其次两者中axis=1的维度不同,因此在该axis中依次作比较
        [2.2, 3.2]],
       [[2. , 3. ],
        [2.2, 3.2]],
       [[4. , 5. ],
        [4. , 5. ]]])
>>>(a+b).shape
(3, 2, 2)


 

 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值