Menu
CoddyTech

平均数与中位数

本课属于 Coddy Machine Learning 学习旅程的“机器学习统计学”单元。第 1 课,共 64 课。

在模型从一列数据中学习之前,你要用两个数字来描述它:中心和离散程度。本章先介绍中心:

七年的收入柱状图,单位为千:六个数值在 31 到 47 之间,还有一位创始人的收入为 390。中位数线位于 41,落在中间的柱子上;均值线则高出许多,位于 89.4

相同的收入数据在代码中,创始人排在最后:

incomes = np.array([38, 41, 35, 47, 44, 31, 390])
print(np.round(incomes.mean(), 1))
print(np.median(incomes))

这会输出:

89.4
41.0

创始人把平均值拉到了六位朋友的上方。排序后的中间值,也就是中位数,几乎没有变化:对于价格这类包含极端值的数据列,要相信它。

偶数个值时,取中间两个值的平均数。数组需要使用 np.median(a);pandas 列可以使用 .median()。

challenge icon

挑战

简单

一栋豪宅就能让整条街看起来价格高得离谱。初始代码会读取这条街的房价,单位为千,存入 prices。请输出:

  1. 平均价格,四舍五入到小数点后 1 位。
  2. 中位数价格。
  3. 房价低于平均价格的房屋数量。

对于房价 320、300、2500、310 和 335:

Mean: 753.0
Median: 320.0
4 of 5 houses cost less than the mean

亲手试试

import numpy as np

n = int(input())
values = []
for i in range(n):
    values.append(int(input()))
prices = np.array(values)

# 在下方编写你的代码
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

机器学习统计学中的所有课

自己练习: Python 在线编译器