1. 介绍
众数是一组数据中出现频率最高的值。它很适合处理类别型数据,比如最常见的颜色、最常购买的商品类型;在数值型数据里也能用,但要注意连续数据可能每个值都只出现一次,这时众数就不一定有解释价值。
2. 原理
- 众数定义: 众数是一组数据中出现次数最多的数值。
3. 重点和注意事项
- 重点: 众数可用于描述数据的典型值,对于了解数据的峰值有帮助。
- 注意事项:
- 数据集可能没有众数,也可能有多个众数。
- 在连续型数据中,众数通常通过分组进行计算。
4. 完整案例
考虑一个案例:某商店每日销售额数据。我们想计算每日销售额的众数,并绘制直方图以展示数据分布情况。
数据:
每日销售额数据:[200, 150, 200, 250, 300, 200, 150, 250, 200]
计算步骤:
通过观察数据,找到出现频率最高的数值。
Python代码:
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import mode
# 每日销售额数据
daily_sales = np.array([200, 150, 200, 250, 300, 200, 150, 250, 200])
# 计算众数。keepdims=True 可以让返回结果保持数组形式,避免不同 SciPy 版本下索引行为不一致。
mode_sales = mode(daily_sales, keepdims=True).mode[0]
# 绘制直方图
plt.hist(daily_sales, bins=5, alpha=0.7, color='orange', edgecolor='black', label='Sales Distribution')
plt.axvline(mode_sales, color='red', linestyle='dashed', linewidth=2, label='Mode')
# 添加标题和标签
plt.title('Sales Distribution and Mode')
plt.xlabel('Sales')
plt.ylabel('Frequency')
# 添加图例
plt.legend()
# 显示图表
plt.show()
print("Mode of daily sales:", mode_sales)
# Mode of daily sales: 200
使用 SciPy 中的 mode 函数计算每日销售额的众数,并使用 Matplotlib 绘制直方图。直方图展示了每日销售额的分布情况,而红色虚线表示众数的位置。
通过这个案例,我们可以看到:众数关心的是“谁出现得最多”,它和均值、中位数回答的问题不一样。
![图片[1]-3. 集中趋势 – 众数(Mode)-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/10/image-195.png)
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END












请登录后查看评论内容