Numpy的应用-2
1:获取描述统计信息
描述统计信息主要包括数据的集中趋势、离散程度和频数分析等,其中集中趋势主要看均值和中位数,离散程度可以看极值、方差、标准差等。
import numpy as np
array1 = np.random.randint(1, 100, 10)
array1
接下来对这段数组进行处理
2:计算和(sum)均值(meam)中位数(median)
print(array1.sum())
print(np.sum(array1))
print(array1.mean())
print(np.mean(array1))
print(np.median(array1))
print(np.quantile(array1, 0.5))
可以直接对数组取这几个值,当然也可以使用numpy中的函数,最后quantile的第二个参数设置为0.5表示计算50%分位数,也就是中位数。
3:极值(amax,amin)、全距(ptp)和四分位距离。
print(array1.max())
print(np.amax(array1))
print(array1.min())
print(np.amin(array1))
print(np.ptp(array1))
q1, q3 = np.quantile(array1, [0.25, 0.75])
print(q1)
print(q3)
print(q3 - q1)
其中全距指的是最大值与最小值的差值,通过之前说的quantile设置第二个参数得到两个四分位的数值。
4:方差(var)、标准差(std)和变异系数。
print(array1.var())
print(np.var(array1))
print(array1.std())
print(np.std(array1))
print(array1.std() / array1.mean())
变异系数通过计算得到
5:绘制箱线图(boxplot)
import matplotlib.pyplot as plt
plt.boxplot(array1, showmeans=True)
plt.ylim([-20, 120])
plt.show()
ylim设定y轴区间
6:对二维数组求上述信息方法(设定axis)
array2 = np.random.randint(60, 101, (5, 3))
array2
如果需要对整体处理,和之前说的相同
array2.mean()
现在对每一列进行处理(axis=0)
array2.mean(axis=0)
对每一行处理(axis=1)
array2.mean(axis=1)
如果对于这样一个多维数组绘制箱线图
plt.boxplot(array2, showmeans=True)
plt.ylim([-20, 120])
plt.show()
7:判断True(all,any)
判断数组是否都为True(all)(全为True,使用all返回True否则返回false)或者有True(any)(只要有一个True就会返回True)
array3 = np.array([1,0,3])
print(array3.all())
print(array3.any())
8:修改数据类型(astype)
array3.astype(float)
8:修改数组形状(reshape)
将其变成三行二列
c = c.reshape(3,2)
9:保存数据到二进制文件中(dump),加载二进制文件创建数组(load)
c.dump('array1-data')
array3 = np.load('array1-data', allow_pickle=True)
array3
10:将数组写道文件中(tofile)
array1.tofile('array.txt', sep=',')
文件中的内容
11:交换数组指定的轴(swapaxes)和转置(transpose)。
array2.swapaxes(0, 1)
array2.transpose()
12:将数组转化为列表(tolist)
print(array2.tolist())
print(type(array2.tolist()))