numpy高级应用—广播

广播与数组运算

1)标量在数组中的广播

广播指的是不同形状的数组之间执行算术运算。最简单的广播就是下方这样的形式,
在这里插入图片描述
标量值4被广播到了arr的每个元素上。

2)数组在数组中的广播

下方的代码中,arr.mean 得到的是一个降一维度的数组,能够在之前的数组中广播。
在这里插入图片描述
每列元素减去列平均值这样的对列进行距平化处理也是通过广播实现的。
在这里插入图片描述
一维数组与二维数组的运算的广播过程,在一个轴上进行广播,使得广播后两个数组形状相同。广播建立在两个数组的后缘维度的概念上,广播会在缺失(少一维)或长度为1(标量)的维度上进行。

广播经常会让人觉得晕,最好的办法是停下来画一张图回忆广播的原则。
在这里插入图片描述
具体图示如下,
在这里插入图片描述
如果是缺少某个维度,则广播会补齐该维度,具体过程为,
在这里插入图片描述
维度大于等于三维后,广播就更难理解了,如果维度错误的话会报出ValueError的错误,根据广播的原则,低维度的数组,用于广播的维度(广播维)必须为1。
在这里插入图片描述

3)numpy数组创建新轴—newaxis属性

一维广播至二维;二维广播三维这样的形式都可以理解为在最开始的源数组上添加一个轴,如果每次广播都要像之前使用reshape方法。如,arr是个一维数组(4,)使用reshape方法,arr.reshape((4,1))。专门构建一个轴,这个过程是很繁琐的。

所以numpy数组提供一个newaxis属性,可以与数组的切片结合,直接构建一个新的轴
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
之前的距平化处理也可以通过newaxis属性的使用达到效果,
在这里插入图片描述

通过广播设置数组的值

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值