python-数据分析-Numpy-2-数组对象方法
数组对象的方法应用
# -*- coding: utf-8 -*- #数组对象的方法 import matplotlib.pyplot as plt import numpy # 1、 获取描述统计信息 array1 = numpy.random.randint(1, 100, 10) print(array1) #随机数组 [64 84 10 52 3 66 4 31 79 7] #计算总和、平均值、中位数 print(array1.sum()) #400 print(numpy.sum(array1)) #400 print(array1.mean()) #40.0 print(numpy.mean(array1)) #40.0 平均值 print(numpy.median(array1)) #41.5 中位数 print(numpy.quantile(array1, 0.5)) #41.5 分位数 #上面代码中的mean、median和quantile分别是 NumPy 中计算算术平均值、中位数和分位数的函数,其中quantitle函数的第二个参数设置为0.5表示计算50%分位数,也就是中位数。 print("-----------------------------------------") #极值、全距和四分位距离 print(array1.max()) print(numpy.amax(array1)) print(array1.min()) print(numpy.amin(array1)) print(array1.ptp()) #ptp 函数计算数组中的最大值和最小值之差 print(numpy.ptp(array1)) q1, q3 = numpy.quantile(array1, [0.25, 0.75]) #计算四分位距离、75%分位数减去25%分位数 print(q3 - q1) print("-----------------------------------------") #方差、标准差、变异系数 print(array1.var()) print(numpy.var(array1)) #方差 print(array1.std()) print(numpy.std(array1)) #标准差 print(array1.std() / array1.mean()) #变异系数、标准差除以平均值
绘制箱线图
# 2、绘制箱线图 #箱线图又称为盒须图,是显示一组数据分散情况的统计图,因形状如箱子而得名。 它主要用于反映原始数据分布的特征,还可以进行多组数据分布特征的比较。 plt.boxplot(array1, showmeans=True) #绘制箱线图 plt.ylim([-20, 120]) #设置y轴范围 plt.show() #显示图形
值得注意的是,对于二维或更高维的数组,在获取描述统计信息时,可以通过名为axis的参数指定均值、方差等运算是沿着哪一个轴来执行,axis参数不同,执行的结果可能是大相径庭的,如下所示。
array2 = numpy.random.randint(60, 101, (5, 3)) #随机数组、5行3列 print(array2) print(array2.mean()) #均值 print(array2.mean(axis=0)) #列平均值(每一列的平均值) axis = 0:表示列 print(array2.mean(axis=1)) #行平均值(每一行的平均值) axis = 1:表示行 print(array2.max(axis=0)) print(array2.max(axis=1)) #再看看绘制箱线图,对于二维数组每一列都会产生一个统计图形,如下所示。 plt.boxplot(array2, showmeans=True) plt.ylim([-20, 120]) plt.show()
说明:箱线图中的小圆圈用来表示离群点,也就是大于$\small{Q_3 + 1.5 \times IQR}$或小于$\small{Q_1 - 1.5 \times IQR}$的值。公式中的常量1.5可以通过绘制箱线图的boxplot函数的whis参数进行修改,常用的值是1.5和3,修改为3通常是为了标识出极度离群点。
需要说明的是,NumPy 的数组对象并没有提供计算几何平均值、调和平均值、去尾平均值等的方法,如果有这方面的需求,可以使用名为 scipy 的三方库,它的stats模块中提供了这些函数。此外,该模块还提供了计算众数、变异系数、偏态、峰度的函数,代码如下所示。
from scipy import stats print(numpy.mean(array1)) # 算术平均值 print(stats.gmean(array1)) # 几何平均值 print(stats.hmean(array1)) # 调和平均值 print(stats.tmean(array1, [10, 90])) # 去尾平均值 print(stats.variation(array1)) # 变异系数 print(stats.skew(array1)) # 偏态系数 print(stats.kurtosis(array1)) # 峰度系数
其它相关方法概述
all() / any()方法:判断数组是否所有元素都是True / 判断数组是否有为True的元素。 astype()方法:拷贝数组,并将数组中的元素转换为指定的类型。 reshape()方法:调整数组对象的形状。
#dump()方法:保存数组到二进制文件中,可以通过 NumPy 中的load()函数从保存的文件中加载数据创建数组。 array1.dump('array1-data') # print(array1.dump('array1-data')) array3 = numpy.load('array1-data', allow_pickle=True) print(array3) print("-----------------------------------------") ##tofile()方法:将数组对象写入文件中。 print(array1.tofile('res/array.txt', sep=',')) #fill()方法:向数组中填充指定的元素。 #flatten()方法:将多维数组扁平化为一维数组。 print(array2.flatten()) #nonzero()方法:返回非0元素的索引。 #round()方法:对数组中的元素做四舍五入操作。 #sort()方法:对数组进行就地排序。 print(array1) print(numpy.sort(array1)) #swapaxes()和transpose()方法:交换数组指定的轴和转置。 print(array2.swapaxes(0, 1)) #交换数组的维度、0和1表示行和列 print(array2.transpose()) #tolist()方法:将数组转成 Python 中的list。 print(array2.tolist()) print(type(array2.tolist()))
本文作者:little小新
本文链接:https://www.cnblogs.com/littlecc/p/18239518
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
分类:
python学习 / 数据分析