导读:数据科学入门:集中趋势度量——均值、中值和众数。
作者:保罗·戴特尔(Paul Deitel)、哈维·戴特尔(Harvey Deitel)
来源:大数据DT(ID:hzdashuju)
本文我们将讨论如何使用描述性统计数据进行数据分析,包括:
  • 均值——一组值的平均值
  • 中值——当所有值按顺序排列时的中间值
  • 众数——最常出现的值
以上这些都是集中趋势度量,每种都会产生一个值来表示一组值中的“中心”值,或者说,在某种意义上是这组值中的典型值。
我们来计算一个整数列表的均值、中值和众数。下面的代码段创建一个名为grades的列表,然后使用内置的sumlen函数来“手动”计算平均值——sum计算grade的总和(397),len计算grade的个数(5):
grades = [
85
93
45
89
85
]


sum(grades) / len(grades)

与函数minmax(在《手把手教你用Python求最大值和最小值》一文中介绍)类似,sumlen都是函数式编程中约简的示例,它们会将值合集减少为单个值——值的总和与值的数量。
Python标准库的statistics模块提供了计算均值、中值和众数的函数,这些同样也是约简。要使用这些功能,首先需要导入statistics模块,如下:
import
 statistics

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


statistics.median(grades)


statistics.mode(grades)

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

结果:
[
45
85
85
89
93
]

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

因为其中有两个或更多个“出现最多”的值。这样的一组值是双峰的,8593都出现了两次。
关于作者:保罗·戴特尔,Deitel&Associates公司首席执行官兼首席技术官,毕业于麻省理工学院,拥有38年的计算经验。保罗是世界上最有经验的编程语言培训师之一,自1992年以来一直针对软件开发人员教授专业课程。他服务过的国际客户包括思科、IBM、西门子、Oracle、戴尔、富达、美国国家航空航天局肯尼迪航天中心等。
本文摘编自Python程序设计:人工智能案例实践》,经出版方授权发布。
延伸阅读Python程序设计:人工智能案例实践
点击上图了解及购买

转载请联系微信:DoctorData
推荐语:极简入门Python和AI,读这一本就够了!538个实例帮你掌握交互式IPython解释器和JupyterNotebook并应用Python实践人工智能项目。
划重点👇
更多精彩👇
在公众号对话框输入以下关键词
查看更多优质内容!
PPT | 读书 | 书单 | 硬核 | 干货|讲明白|神操作
大数据 | 云计算 | 数据库 | Python | 爬虫 | 可视化
AI | 人工智能 | 机器学习 | 深度学习 | NLP
5G|中台 | 用户画像1024 | 数学 | 算法 数字孪生
据统计,99%的大咖都关注了这个公众号
👇
继续阅读
阅读原文