高级 Python 开发课程
第 章
>
第 级
数学模块
统计模块
目标
走到办公室,使用 statistics 模块记录农场指标的一些统计数据。
从阁楼下楼梯后有一个办公室,那里存放着记录农场重要数据的文件。处理这些数据并记录下来,以预测农场未来的增长,将是一个好主意。为此,我们将实现 statistics 模块的使用。模块允许我们导入函数、类等工具,从而扩展 Python 的功能。为了设置一个模块,你需要在模块名称前写上 import,没错,你一直在使用一个模块来控制玩家!
import statistics
该模块增加了几个用于计算统计数据的函数,下面是我们将用于处理办公室统计数据的一些函数:
statistics.mean(): 计算一组数据的平均值statistics.median(): 计算一组数据的中位数statistics.median_low(): 计算一组数据中较低的中位数statistics.median_high(): 计算一组数据中较高的中位数statistics.mode(): 计算一组数据中最频繁出现的值,即集中趋势statistics.variance(): 计算一组数据值的方差。数值高表示数据分布较分散,数值低表示数据较集中。
首先走到标有 X 的灯光前的文件柜处,使用 read() 函数检查文件并读取数据。现场共有三个 (3) 报告需要读取,请创建三个 (3) 列表来存储每份报告的数据:weather_report 、export_report 和 harvest_report。每份报告中的数据包含表示一年中前六 (6) 个月数据的六 (6) 个数值。请在读取时记录并存储每个列表中的这六 (6) 个数值。
当你记录并存储了列表中的数据后,走到蓝色地毯上标有 X 的暗处。创建五个变量,分别命名为:mean 、median 、low 、high 和 variance。这些变量将存放我们之前提到的统计函数所计算出的数值。我们接下来的操作是将我们希望获取统计数据的报告列表传入相应的统计函数,这将为所提供的数据生成统计信息。
mean = statistics.mean( report list ) median = statistics.median( report list ) low = statistics.median_low( report list ) high = statistics.median_high( report list ) variance = statistics.variance( report list )
利用这些统计数据,我们将使用 write() 函数在备忘录中记录数据,代码编辑器中已预先编写了这一序列。在蓝色地毯的 X 处,列出 export_report 的变量并将它们写下来。在绿色地毯的 X 处,列出 harvest_report 的变量并将它们写下来。在红色地毯的 X 处,列出 weather_report 的变量并将它们写下来。在写入之前,你必须先为每个报告填充相应的变量,以确保写下的统计数据正确无误。
当所有统计数据都记录完毕后,走到金色 X 处,创建一个名为 group_report 的新列表。在此列表中,你将按顺序添加 export_report 和 harvest_report。这样将创建一个嵌套列表,而嵌套列表不能直接用于统计函数,为了解决这个问题,请使用列表推导式将嵌套列表展平,如下所示:
group_report = [item for sublist in group_report for item in sublist]
设置另外两个变量:variance 和 mode,并使用各自的统计函数。将 group_report 列表传入方差统计函数,将 weather_report 列表传入众数统计函数,示例如下:
variance = statistics.variance( group_report ) , mode = statistics.mode( weather_report ) 。执行代码编辑器中为这些变量设置好的 write() 函数,以完成该关卡。