page contents

如何用 Python 计算平均数、 中位数和众数!

无论是在数据分析、机器学习还是金融建模领域,均值(Mean)、中位数(Median)和众数(Mode) 都是最基础且最重要的统计指标。虽然 Python 有像 NumPy 和 Pandas 这样强大的库可以一键搞定,但作为一名开发者,理解底层的计算逻辑至关重要。今天,我们将挑战不使用任何内置统计库,纯手写 Python 代码来实现这三大指标!

attachments-2026-01-ek1hXbh7695c6934d415d.png无论是在数据分析、机器学习还是金融建模领域,均值(Mean)、中位数(Median)和众数(Mode) 都是最基础且最重要的统计指标。虽然 Python 有像 NumPy 和 Pandas 这样强大的库可以一键搞定,但作为一名开发者,理解底层的计算逻辑至关重要。今天,我们将挑战不使用任何内置统计库,纯手写 Python 代码来实现这三大指标!

1. 均值 (Mean)

均值即数据集中所有数值的平均值。计算公式:所有数值之和 ÷ 数值的总个数。

Python 实现:

# 数据样本list1 = [12162020123025232420]
# 计算均值:求和后除以长度mean = sum(list1) / len(list1)
print(f"均值为: {mean}")# 输出结果: 20.2

2. 中位数 (Median)

中位数是将数据集按从小到大排序后,位于中间位置的数值。计算规则

  • 如果数据个数是奇数:中位数就是正中间的那个数。

  • 如果数据个数是偶数:中位数是中间两个数的平均值。

Python 实现:

list1 = [12, 16, 20, 20, 12, 30, 25, 23, 24, 20]
# 步骤1:必须先排序list1.sort()
# 步骤2:判断奇偶性并计算if len(list1) % 2 == 0:    m1 = list1[len(list1) // 2]    m2 = list1[len(list1) // 2 - 1]    median = (m1 + m2) / 2else:    median = list1[len(list1) // 2]
print(f"中位数为: {median}")# 输出结果: 20.0

3. 众数 (Mode)

众数是数据集中出现频率最高的数值。计算逻辑:我们需要统计每个数字出现的次数,然后找出频率最大的那一个。

Python 实现:

list1 = [12, 16, 20, 20, 12, 30, 25, 23, 24, 20]
# 步骤1:使用字典统计频率frequency = {}for i in list1:    frequency.setdefault(i, 0)    frequency[i] += 1
# 步骤2:找出最高频率frequent = max(frequency.values())
# 步骤3:匹配对应的数值for i, j in frequency.items():    if j == frequent:        mode = i
print(f"众数为: {mode}")# 输出结果: 20

总结

通过以上代码,我们实现了:

  • Mean:反映数据的总体平均水平。

  • Median:不受极端异常值的影响,反映中等水平。

  • Mode:反映数据分布中最集中的点。

虽然在实际工作中我们更倾向于使用 import numpy as np,但这种“拆解算法”的过程能极大地提升你的编程逻辑能力。

更多相关技术内容咨询欢迎前往并持续关注好学星城论坛了解详情。

想高效系统的学习Python编程语言,推荐大家关注一个微信公众号:Python编程学习圈。每天分享行业资讯、技术干货供大家阅读,关注即可免费领取整套Python入门到进阶的学习资料以及教程,感兴趣的小伙伴赶紧行动起来吧。

attachments-2022-05-rLS4AIF8628ee5f3b7e12.jpg

  • 发表于 2026-01-06 09:45
  • 阅读 ( 36 )
  • 分类:Python开发

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
Pack
Pack

1783 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 2228 文章
  3. Pack 1783 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章