Numpy数组广播Broadcasting机制

你可能已经知道,Numpy数组运算是对应维度元素进行运算,但是有时候却遇到维度shape不一样(有一定限制)的数组也可以进行运算,这就是Numpy数组广播机制。
数组广播原则:如果两个数组的后缘维度(即从末尾算起的维度)的轴长相等,或者其中一个数组后续维度的轴长为1,则认为这两个数组是广播兼容的,广播会在缺失和(或)长度为1的轴上进行.
只讲理论不举栗子的行为都是耍流氓,现在来看几个栗子:

  1. 数组与标量运算
    在这里插入图片描述
    其实就是对两个数组中的一个或者多个在行、列上进行复制元素扩展,如果最后能形成两个shape一样的数组,就进行广播运算。
  2. 其中一个数组后续维度的轴长为1
    在这里插入图片描述
    根据广播原则:arr_1的shape为(4,1),arr_2的shape为(3,),所以会同时在两个轴发生广播,arr_1的shape变成(4,3),而arr_2的shape变成(4,3),所以结果也为(4,3).
    广播运算过程
    注:维度(3,1)与(3,)不相等
  3. 后续维度轴长相等
    在这里插入图片描述
    根据广播原则分析:arr_3的shape为(3,4,2),arr_4的shape为(4,2),它们的后缘维度轴长度都为(4,2),所以可以在0轴进行广播,arr_4的shape变为(3,4,2)。

可以参考官网:https://docs.scipy.org/doc/numpy/user/basics.broadcasting.html?highlight=broadcasting

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值