Numpy 使用数组进行面向数组编程

        使用Numpy数组可以使你利用简单的数组表达式完成多种数据操作任务,而无须写大量的循环操作。这种利用数组表达式来代替显示循环的方法,成为向量化。通常,向量化的数组操作回避纯Python的等价实现在速度上快一到两个数量级(甚至更多)。

一、将条件逻辑作为数组操作

        numpy.where函数是三元表达式x if condition else y的向量化版本。

实例代码:

         np.where的第二个参数和第三个参数并不需要是数组,它们可以是标量。where在数据分析中的一个典型用法是根据一的数组来生成一个新的数组。假设你有一个随机生成矩阵数据,并且你想将其中的正值都替换为2,将所有的负值替换为-2,使用np.where会很容易实现:

         你可以使用np.where将标量和数组联合:

二、数学和统计方法

        许多关于计算整个数组统计值或关于轴向数据的数学函数,可以作为数组类型的方法被调用。你可以使用聚合函数(通常也叫缩减函数),比如sum,mean和std(标准差),既可以直接调用数组实例的方法,也可以使用顶层的Numpy函数。

         其他的方法,cumsum,cumprod并不会聚合,他们会产生一个中间结果;在多维数组中,像cumsum这样的累机函数返回相同长度的数组,但是可以在指定轴向根据较低维度的切片进行部分聚合。

 

基础数组统计方法
方法描述
sum沿着轴向计算所有元素的累和,0长度的数组,累和为0。
mean数学平均,0长度的数组平均值为NaN。
std, var标准差和方差, 可以选择自由度调整(默认分母是n)
min, max最小值和最大值
argmin, argmax最大值和最小值的位置
cumsum从0开始元素累积和
cumprod从一开始元素累计积

三、布尔值数组的方法

        布尔值会被强制为1和0。因此,sum通常可以用于计算布尔值数组中的True的个数:

        

        对于布尔值数组,有两个非常有用的方法any和all。any()检查数组中是否至少有一个True,而all()检查是否每个都是True,这些方法也可适用于非布尔值数组,所有非0元素都会按True处理。

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值