购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.14 数据科学入门:集中趋势度量—均值、中值和众数

在这一节中,我们继续讨论如何使用描述性统计数据进行数据分析,包括:

以上这些都是 集中趋势度量 ,每种都会产生一个值来表示一组值中的“中心”值,或者说,在某种意义上是这组值中的典型值。

我们来计算一个整数列表的均值、中值和众数。下面的代码段创建一个名为 grades 的列表,然后使用内置的 sum len 函数来“手动”计算平均值— sum 计算 grade 的总和(397), len 计算 grade 的个数(5):

000

前一章介绍了使用Python的内置函数 len sum 分别计算 描述性统计 中的计数和求和。与函数 min max (在前一章中介绍)类似, sum len 都是函数式编程中约简的示例,它们会将值合集减少为单个值—值的总和与值的数量。在3.8节的计算班级平均分的示例中,可以删除脚本的第10~15行,并使用代码段 [2] 替换第16行的代码来计算平均值。

Python标准库的 statistics 模块提供了计算均值、中值和众数的函数,这些同样也是约简。要使用这些功能,首先需要导入 statistics 模块,如下:

000

然后,可以使用“ statistics. ”加上需要调用的函数名称来访问模块的功能。下面的代码使用 statistics 模块的 mean median mode 函数分别计算列表 grades 的均值、中值和众数:

000

其中,每个函数的参数都必须是 可迭代的 ,在本例中为列表 grades 。要确认中值和众数是否正确,可以使用内置的 sorted 函数来得到列表 grades 按值的递增顺序排列的副本:

000

列表 grades 具有奇数个值(5),因此 median 返回 中间值 85 )。如果列表包含偶数个值,则 median 会返回 两个 中间值的 平均值 。从排好序的列表可以看到 85 是众数,因为它出现的次数最多(两次)。类似于下面的列表会导致 mode 函数产生一个 StatisticsError

000

因为其中有两个或更多个“出现最多”的值。这样的一组值是 双峰的 85 93 都出现了两次。 oc37VUCxYpZc6TlMwsphw5/DmZPpVuVIp6OE/LVlg/T/WlvKYO4t5axkIERinOTE

点击中间区域
呼出菜单
上一章
目录
下一章
×