Numpy 利用数组进行数据处理

 

Numpy数组使你可以将许多种数据处理任务表述为简洁的数组表达式(否则需要编写循环)。

用数组表达式代替循环的做法,通常被称为矢量化。一般来说,矢量化数组运算要比等价的纯跑一趟湖南快

上一两个数量级(甚至更多),尤其是各种数值计算。

将条件逻辑表述为数组运算 np.where

 where 第二需求:

 where 的第二个和第三个参数不必是数组,他们都可以是标量值。在数据分析工作中,where通常用于根据另一个

数组而产生一个新的数组。假设有一个由随机数据组成的矩阵,您希望将所有正值替换为2, 将所有负值替换为-2.若利用np.where,则会非常简单:

看例子:

 更复杂的数据逻辑例子:

 

数学和统计方法

 详情点击:Numpy 的数学和统计方法

用于布尔型数组的方法

 在上面的方法中,bool类型会强制转换为1和0。因此, sum经常被用来对布尔型数组中的True值计数:

 另外还有两个方法any和all, 他们对布尔型数组非常有用。any用于测试数组中是否存在一个或多个True, 而all则检查数组中所有值是否都是True:

 这两个方法也能用于非布尔型数组, 所有非0元素将会被当作True。

 排序

 跟Python内置的列表类型一样, Numpy数组也可以通过sort方法就地排序:

注意:

 顶级方法np.sort返回的是数组的已排序副本, 而就地排序则会修改数组本身。

计算数组分位数最简单的方法是对其进行排序, 然后选取特定位置的值:

 

唯一化以及其他的集合逻辑

 Numpy提供了一些针对一维ndarray的基本集合运算。最常用的可能要数np.unique 了, 它用于找出数组中唯一值

并返回已排序的结果:

 而python代码对比一下

 另一个函数np.inld用于测试一个数组中的值在另一个数组中的成员资格, 返回一个布尔型数组:

 数组的集合运算方法

 

原文地址:https://www.cnblogs.com/renfanzi/p/6406996.html