Python statistics 模块知识点汇总
statistics 模块是Python标准库中用于基本统计计算的模块。它提供了一些常见的统计函数, 如平均值、中位数、方差等。这个模块非常适合用于数据分析的入门学习!
mean() – 算术平均数
大白话解释: 就是把所有数字加起来,然后除以数字的个数。 比如考试平均分就是所有人的分数加起来除以人数。
参数: data – 数字列表或可迭代对象
scores = [85, 92, 78]
avg = statistics.mean(scores)
print(avg) # 输出:85
median() – 中位数
大白话解释: 把一组数据从小到大排队,站在最中间的那个人的值就是中位数。 奇数个数时取正中间,偶数个数时取中间两个数的平均值。
相关函数: median_low(), median_high(), median_grouped()
mid = statistics.median(data)
print(mid) # 输出:34
data_even = [1, 3, 5, 7]
mid_even = statistics.median(data_even) # 输出:4.0
mode() – 众数
大白话解释: 一组数据中出现次数最多的那个数。 比如班级里身高1.65米的同学最多,1.65就是众数。
相关函数: multimode()(返回所有众数)
most_common = statistics.mode(fruits)
print(most_common) # 输出:’香蕉’
# 处理多个众数的情况
scores = [85, 92, 85, 92, 78]
modes = statistics.multimode(scores)
print(modes) # 输出:[85, 92]
方差与标准差
方差(variance): 数据点与平均值的距离平方的平均值
标准差(stdev): 方差的平方根,更直观地反映数据波动大小
总体标准差: statistics.pstdev(data)
样本方差: statistics.variance(data)
总体方差: statistics.pvariance(data)
# 样本标准差
std_dev = statistics.stdev(data)
# 总体标准差
p_std_dev = statistics.pstdev(data)
print(f”样本标准差: {std_dev:.2f}”)
print(f”总体标准差: {p_std_dev:.2f}”)
几何平均数与调和平均数
几何平均数: 用于计算平均增长率,比如计算投资收益的平均增长率
调和平均数: 主要用于速度和速率,比如计算平均速度
调和平均数: statistics.harmonic_mean(data)
returns = [1.05, 1.02, 1.10, 1.06] # 每年收益率
geo_mean = statistics.geometric_mean(returns)
print(f”平均年收益率: {geo_mean:.4f}”)
# 调和平均数示例 – 平均速度
speeds = [30, 60] # 去程30km/h, 返程60km/h
harmonic_mean = statistics.harmonic_mean(speeds)
print(f”平均速度: {harmonic_mean} km/h”) # 输出40 km/h
分位数函数
quantiles(): 将数据分割为概率相等的区间,常用于计算四分位数
# 计算四分位数
quartiles = statistics.quantiles(data, n=4)
print(quartiles) # [30.0, 55.0, 80.0]
statistics模块在现实中的应用
计算班级平均分、最高/最低分、成绩分布等
计算月度平均销售额、销售波动情况(方差)、最畅销产品(众数)
实验数据的统计分析,测量值的集中趋势和离散程度
计算平均工资、房价中位数、人均收入等社会经济指标
运动员的平均成绩、成绩稳定性(标准差)、最常见得分方式
使用 statistics 模块的注意事项
✅ 数据要求
输入数据应为数字类型(int, float, Decimal等)。如果数据包含非数字类型,会引发TypeError。
✅ 错误处理
对空数据调用函数会引发StatisticsError。使用前应检查数据是否为空:
if data: result = mean(data)
✅ 模块导入
使用前需要导入模块:
import statistics
推荐别名:import statistics as stats
✅ 何时使用
适合小数据集的基本统计分析。对于大数据集或高级统计,推荐使用NumPy、Pandas等库。
Python的statistics模块是入门统计分析的绝佳工具!掌握这些基础知识后,你可以继续学习更强大的数据分析库。