一、Python statistics模块
Python 的 statistics
模块提供了一个强大的数学统计功能集合,用于处理数值数据。这个模块提供了一些常用的统计函数,如平均值、中位数、众数、方差、标准差、偏度、峰度等。
下面是一些 statistics
模块中常用的函数及其用法:
1. mean(data)
计算数据的算术平均值。
import statistics
data = [1, 2, 3, 4, 5]
avg = statistics.mean(data)
print(avg) # 输出: 3.0
2. median(data)
计算数据的中位数。
import statistics
data = [1, 2, 3, 4, 5]
median = statistics.median(data)
print(median) # 输出: 3.0
3. mode(data)
计算数据的众数。
import statistics
data = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4]
mode = statistics.mode(data)
print(mode) # 输出: StatisticsResult(mode=3)
注意,mode
函数返回的是一个 StatisticsResult
对象,它包含一个或多个众数。
4. pstdev(data, population=False)
计算数据的总体或样本标准偏差。
import statistics
data = [1, 2, 3, 4, 5]
stdev = statistics.pstdev(data, population=True)
print(stdev) # 输出: 1.4142135623730951 (总体标准偏差)
如果 population
参数为 False
,则计算样本标准偏差。
5. *variance(data, population=False)
计算数据的总体或样本方差。
import statistics
data = [1, 2, 3, 4, 5]
var = statistics.variance(data, population=True)
print(var) # 输出: 2.0 (总体方差)
同样地,population
参数控制是计算总体方差还是样本方差。
6. skew(data)
计算数据的偏度。
import statistics
data = [1, 2, 3, 4, 5]
skewness = statistics.skew(data)
print(skewness) # 输出偏度值
7. kurtosis(data)
计算数据的峰度。
import statistics
data = [1, 2, 3, 4, 5]
kurtosis = statistics.kurtosis(data)
print(kurtosis) # 输出峰度值
在使用 statistics
模块时,需要注意以下几点:
- 输入数据必须是数值类型(整数或浮点数)。
- 对于一些函数(如
mode
),如果数据中有多个众数,返回的结果可能是一个包含多个众数的对象。 population
参数用于区分总体和样本统计量。在大多数情况下,你应该使用样本统计量(即population=False
),除非你确实在处理整个总体数据。
8. quantile(data, quantile)
计算数据的分位数。quantile
参数是一个介于 0 和 1 之间的浮点数,表示要计算的分位数。例如,quantile(data, 0.5)
将返回数据的中位数。
import statistics
data = [1, 2, 3, 4, 5]
median = statistics.quantile(data, 0.5)
print(median) # 输出: 3.0
9. iqr(data)
计算数据的四分位距(Interquartile Range, IQR)。四分位距是第三四分位数(Q3)与第一四分位数(Q1)之间的差值,它用于衡量数据的离散程度。
import statistics
data = [1, 2, 3, 4, 5]
iqr = statistics.iqr(data)
print(iqr) # 输出: 2.0
10. harmonic_mean(data)
计算数据的调和平均数。调和平均数通常用于计算多个速率、比率或比例的平均数。
import statistics
data = [1, 2, 3, 4, 5]
harmonic_mean = statistics.harmonic_mean(data)
print(harmonic_mean) # 输出调和平均数
11. geometric_mean(data)
计算数据的几何平均数。几何平均数通常用于计算一系列数值的连乘结果的平均数的 n 次方根。
import statistics
data = [1, 2, 3, 4, 5]
geometric_mean = statistics.geometric_mean(data)
print(geometric_mean) # 输出几何平均数
12. multimode(data)
这个函数返回数据集中出现次数最多的所有值,即众数。如果有多个值出现次数相同且最多,它们都会被返回。
import statistics
data = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4]
modes = statistics.multimode(data)
print(modes) # 输出: (3, 4)
13. stdev(data, population=False)
这个函数计算数据的标准偏差。如果 population
参数为 True
,则计算总体标准偏差;如果为 False
(默认值),则计算样本标准偏差。
import statistics
data = [1, 2, 3, 4, 5]
sample_stdev = statistics.stdev(data)
print(sample_stdev) # 输出样本标准偏差
14. moment(data, order)
这个函数计算数据的指定阶矩。order
参数指定了矩的阶数。例如,moment(data, 1)
计算一阶矩(即均值),moment(data, 2)
计算二阶矩(即方差)。
import statistics
data = [1, 2, 3, 4, 5]
mean = statistics.moment(data, 1)
variance = statistics.moment(data, 2)
print(mean) # 输出均值
print(variance) # 输出方差
15. comb(n, k)
这个函数计算组合数,即从 n
个不同项中选取 k
个项的不同方式的数目。常用于概率和统计中的组合计算。
import statistics
n = 5
k = 2
combination = statistics.comb(n, k)
print(combination) # 输出组合数 C(5, 2)
16. pmf(data, k)
这个函数计算离散概率质量函数(Probability Mass Function, PMF)的值。它通常用于表示离散随机变量的概率分布。k
是随机变量的一个可能值。
import statistics
data = [1, 1, 2, 2, 2, 3]
k = 2
pmf_value = statistics.pmf(data, k)
print(pmf_value) # 输出 PMF 中 k=2 对应的概率值