本文我们将讨论如何使用描述性统计数据进行数据分析,包括:
- 均值——一组值的平均值;
- 中值——当所有值按顺序排列时的中间值;
- 众数——最常出现的值。
以上这些都是集中趋势度量,每种都会产生一个值来表示一组值中的“中心”值,或者说,在某种意义上是这组值中的典型值。
我们来计算一个整数列表的均值、中值和众数。下面的代码段创建一个名为grades的列表,然后使用内置的sum和len函数来“手动”计算平均值——sum计算grade的总和(397),len计算grade的个数(5):
grades = [85, 93, 45, 89, 85]
sum(grades) / len(grades)
与函数min和max(在《手把手教你用Python求最大值和最小值》一文中介绍)类似,sum和len都是函数式编程中约简的示例,它们会将值合集减少为单个值——值的总和与值的数量。
Python标准库的statistics模块提供了计算均值、中值和众数的函数,这些同样也是约简。要使用这些功能,首先需要导入statistics模块,如下:
import statistics
然后,可以使用“statistics.”加上需要调用的函数名称来访问模块的功能。下面的代码使用statistics模块的mean、median和mode函数分别计算列表grades的均值(79.4)、中值(85)和众数(85):
statistics.mean(grades)
statistics.median(grades)
statistics.mode(grades)
其中,每个函数的参数都必须是可迭代的,在本例中为列表