Python statistics模块

Python statistics模块知识点汇总

Python statistics 模块知识点汇总

编程小白也能理解的统计学函数详解

statistics 模块是Python标准库中用于基本统计计算的模块。它提供了一些常见的统计函数, 如平均值、中位数、方差等。这个模块非常适合用于数据分析的入门学习!

“统计学就像是数据的翻译官,它把杂乱无章的数字变成我们能理解的语言。”
平均值函数

mean() – 算术平均数

大白话解释: 就是把所有数字加起来,然后除以数字的个数。 比如考试平均分就是所有人的分数加起来除以人数。

使用方式: statistics.mean(data)
参数: data – 数字列表或可迭代对象
85
张三
92
李四
78
王五
83.3
平均分
import statistics
scores = [85, 92, 78]
avg = statistics.mean(scores)
print(avg) # 输出:85
中位数函数

median() – 中位数

大白话解释: 把一组数据从小到大排队,站在最中间的那个人的值就是中位数。 奇数个数时取正中间,偶数个数时取中间两个数的平均值。

使用方式: statistics.median(data)
相关函数: median_low(), median_high(), median_grouped()
15
22
34
中位数
45
56
data = [15, 22, 34, 45, 56]
mid = statistics.median(data)
print(mid) # 输出:34

data_even = [1, 3, 5, 7]
mid_even = statistics.median(data_even) # 输出:4.0
注意: 当数据个数为偶数时,median()会自动计算中间两个数的平均值
众数函数

mode() – 众数

大白话解释: 一组数据中出现次数最多的那个数。 比如班级里身高1.65米的同学最多,1.65就是众数。

使用方式: statistics.mode(data)
相关函数: multimode()(返回所有众数)
苹果
12票
香蕉
25票
橙子
18票
fruits = [‘苹果’, ‘香蕉’, ‘橙子’, ‘香蕉’, ‘香蕉’]
most_common = statistics.mode(fruits)
print(most_common) # 输出:’香蕉’

# 处理多个众数的情况
scores = [85, 92, 85, 92, 78]
modes = statistics.multimode(scores)
print(modes) # 输出:[85, 92]
注意: 如果数据中有多个众数,mode()会报错,这时应该使用multimode()
离散程度度量

方差与标准差

方差(variance): 数据点与平均值的距离平方的平均值
标准差(stdev): 方差的平方根,更直观地反映数据波动大小

样本标准差: statistics.stdev(data)
总体标准差: statistics.pstdev(data)
样本方差: statistics.variance(data)
总体方差: statistics.pvariance(data)
平均
标准差反映数据点与平均值的离散程度
data = [1.5, 2.5, 2.5, 2.75, 3.25, 4.75]
# 样本标准差
std_dev = statistics.stdev(data)
# 总体标准差
p_std_dev = statistics.pstdev(data)
print(f”样本标准差: {std_dev:.2f}”)
print(f”总体标准差: {p_std_dev:.2f}”)
重要区别: 样本方差/标准差使用n-1计算(用于从样本推断总体), 总体方差/标准差使用n计算(用于整个总体数据)
其他重要函数

几何平均数与调和平均数

几何平均数: 用于计算平均增长率,比如计算投资收益的平均增长率
调和平均数: 主要用于速度和速率,比如计算平均速度

几何平均数: statistics.geometric_mean(data)
调和平均数: 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(): 将数据分割为概率相等的区间,常用于计算四分位数

data = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
# 计算四分位数
quartiles = statistics.quantiles(data, n=4)
print(quartiles) # [30.0, 55.0, 80.0]
实际应用场景

statistics模块在现实中的应用

1. 考试成绩分析:
计算班级平均分、最高/最低分、成绩分布等
2. 销售数据分析:
计算月度平均销售额、销售波动情况(方差)、最畅销产品(众数)
3. 科学研究:
实验数据的统计分析,测量值的集中趋势和离散程度
4. 生活质量指标:
计算平均工资、房价中位数、人均收入等社会经济指标
5. 运动数据分析:
运动员的平均成绩、成绩稳定性(标准差)、最常见得分方式
📊
数据分析
📈
趋势预测
🔍
数据探索
📉
波动分析

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部