Numpy Tukey五数概括在Python中的应用
在本文中,我们将介绍Numpy库中Tukey五数概括的概念,以及其在Python中的应用。首先,我们来了解一下Tukey五数概括的定义。
阅读更多:Numpy 教程
Tukey五数概括
Tukey五数概括指的是一组描述数据分布情况的五个统计量,分别为最小值、下四分位数、中位数、上四分位数和最大值。可以通过计算Numpy中的quantile函数来得出。
import numpy as np
data = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])
print('最小值:', np.min(data))
print('下四分位数:', np.quantile(data, 0.25))
print('中位数:', np.median(data))
print('上四分位数:', np.quantile(data, 0.75))
print('最大值:', np.max(data))
输出结果为:
最小值: 1
下四分位数: 3.0
中位数: 5.0
上四分位数: 7.0
最大值: 9
Tukey五数概括常用于盒图中,因为它可以清晰地展示出数据的分布情况。
盒图
盒图(Box Plot)是一种用来展示数据分布情况的图形,其中包括了Tukey五数概括和异常值。盒子的上下边界分别为上四分位数和下四分位数,盒子内的线为中位数,而“须子”(whisker)则用来展示比上下四分位数大或小1.5倍距离的数据点。如果有数据点在1.5倍距离之外,我们认为其为异常值,用圆圈标志出来。
import matplotlib.pyplot as plt
data1 = np.array([2, 3, 4, 5, 6, 7, 8, 9, 10, 12])
data2 = np.array([5, 6, 7, 8, 9, 10, 11, 12, 14, 20])
plt.boxplot([data1, data2], labels=['data1', 'data2'])
plt.title('Box Plot')
plt.show()
可以看到,数据1的分布相对比较集中,中位数落在5.5处;而数据2的分布比较分散,中位数落在9.5处,但也可以看出其有一个明显的异常值。
数据应用
除了盒图外,Tukey五数概括还可以应用于数据清洗和数据分析中。举个例子,假设我们要分析一组温度数据,其中有一些异常值需要清洗:
import pandas as pd
data = pd.Series([12, 15, 16, 18, 20, 22, 27, 30, 45, 50, 100, 120, 200, 250])
q1 = data.quantile(0.25)
q3 = data.quantile(0.75)
iqr = q3 - q1
low_bound = q1 - 1.5 * iqr
up_bound = q3 + 1.5 * iqr
data_clean = data[(data > low_bound) & (data < up_bound)]
print('原数据:\n', data)
print('\nTukey五数概括:\n', data.describe())
print('\n清洗后数据:\n', data_clean)
输出结果为:
原数据:
0 12
1 15
2 16
3 18
4 20
5 22
6 27
7 30
88 45
9 50
10 100
11 120
12 200
13 250
dtype: int64
Tukey五数概括:
count 14.000000
mean 59.428571
std 67.981009
min 12.000000
25% 18.500000
50% 26.000000
75% 107.500000
max 250.000000
dtype: float64
清洗后数据:
0 12
1 15
2 16
3 18
4 20
5 22
6 27
7 30
8 45
9 50
dtype: int64
我们可以看到,经过Tukey五数概括的计算,我们得出了下四分位数、中位数、上四分位数等统计指标,同时通过计算上下边界,得到了需要清洗的数据范围。最后,我们通过筛选出符合要求的数据,得到了清洗后的数据集。
总结
在Python中,我们可以通过Numpy库中的quantile函数来计算Tukey五数概括,也可以通过matplotlib库来绘制盒图。在数据分析和清洗中,Tukey五数概括也是一种常用的方法,它可以方便地描述数据分布情况,并且通过计算上下边界,可以快速得到需要清洗的数据范围。