Python模块-Numpy(四)-统计计算

接下来的一节为大家介绍numpy模块中的统计方法。

1. 数据排序

在很多情况下,我们拿到数据的时候需要对数据进行排序,按顺序输出然后再进行相关的数值计算或统计计算。在numpy中,排序的函数为,先看一个示例。

从上面的例子我们可以确定以下两点:

与list的sort()方法类似,arr.sort()函数是对数组进行原位排序,也就是说直接处理原始的数组

可以分别进行按行和按列排序,排序顺序取决于num参数,num=0则按列排序,num=1则按行排序

若不想改变原有数组,可以使用,示例如下。

对于np.sort(arr)而言,排序不改变原有的数组,这点需要特别注意。在进行排序时,如果命令是np.sort(arr),则默认对arr按行排序,如果按列,可以指定参数,命令为。

2. 数据去重

数据去重主要是对数进行性处理,去除相同的部分,仅保留同一个元素的一个备份,同时,返回的是无重复元素组成的数组。

从上面的实例可以看出,之前的为维数组在去重之后,只输出了排序好的一维数组,内部元素为names二维数组内所有的元素,这说明unique方法在使用时有以下三个作用:

将多维数组进行降维处理,输出一维数组

将上述一维数组进行排序

将排序后的数组进行去重并输出,每一个元素只保留一个拷贝

3. 统计计算3.1 数组交集、并集及差集

通过获取数组的交集、并集及差集,可以轻松的实现两个数组之间的差异比对、数据整合以及数据筛选。在Numpy模块中,可以通过不同的方法实现不同条件下的数据筛选,总结如下图。

np.uniq(x):对x去重

np.intersect1d(x,y):查找x与y共有的元素,取交集,输出排序后的结果

np.union1d(x,y):输出x和y的所有元素,取并集,输出时排序去重

np.in1d(x,y):检测x中的元素是否在y内部,返回的是布尔逻辑值

np.setdiff1d(x,y):输出只在x中出现的元素

np.setxor1d(x,y):只在任意一个数组中出现的元素集合

3.2 统计方法

通过上面的处理,可以获得符合条件的数据,之后就是对数据的统计分析。以下是部分统计函数及其使用方法介绍。

sum

sum()函数在使用时,可以使用或者两种方法。

对于第一种方法,可以通过索引制定行相加,如np.sum(array[0])表示第一行相加;对于第二种方法,sum内的参数为数组下标,依据给定的参数对不同数组元素进行求和。具体参数及对应关系请参照

数组转换

。对于224的多维数组,数组及元素索引的对应关系如下图所示。

在用array.sum(n)函数进行处理时,不同的n表示不同的加和行为,具体见下图。

对于其他统计函数,同样有两种计算方法,和,除了cumsum()和cumprod()两个函数以外,计算原理同sum一致,在此不再赘述。

对于cumsum()和cumprod()两个函数,多维矩阵(n1 x n2 x n3 ...)而言在计算时原理同sum一致,对于多维数组(n1 x n2),当参数为0时,表示按列累加或累乘,当参数为1时,表示按行累加或累乘,输出的还是多维数组(n1 x n2)。

以上就是Numpy模块统计部分的相关内容,主要应该掌握多维矩阵的sum(n)等函数的使用。

参考书籍:

Python for Data Analysis. Data Wrangling with Pandas, NumPy, and IPython (2017, O’Reilly)

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180913G1TIJ800?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券