Java教程

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

本文主要是介绍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处理。

 

 

这篇关于Numpy 使用数组进行面向数组编程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!