2.2.6 标准统计

接下来,我们将讨论一个模块,该模块包含源自科学和工程中各种各样应用的数学计算和基本可视化工具集合(标准Python模块并没有完全实现这些功能)。这些计算与理解一系列数值的统计特性有关。这个模块具有很强的实用性,例如,可适用于执行一系列科学实验以产生一个定量值的测量结果。现代科学家面临的最重要的挑战之一就是如何正确分析这些数据,而计算在这类分析中扮演着日益重要的角色。这些基本数据分析函数的实现并不困难,表2-2-7总结了其API。

1. 基本统计

假设有n个测量值x0x1,…,xn-1。这些测量值的平均值也称之为均值(mean)。其定义公式为:μ=(x0 + x1 + … + xn-1)/ n,是测试值的估计值。大家感兴趣的统计量还包括:最小值(minimum)、最大值(maximum)、中值(median,假设测量值按顺序排列,如果n为奇数,则中值为中间的测量值;如果n为偶数,则中值为中间两个测量值的平均值)。另一个感兴趣的统计量为样本方差(sample variance),其定义公式为:

σ2=((x0-μ2+(x1-μ2+…+(xn-1-μ2)/(n-1)

以及样本标准差(sample standard deviation),即样本方差的平方根。stdstats模块的API如表2-2-7所示。

表2-2-7 stdstats模块的API

程序2.2.5(stdstats.py)是用于计算这些基本统计量的模块(实现中值的高效计算相对于其他统计量而言比较复杂,我们将在4.2节讨论median()的实现)。stdstats模块的测试客户端main()函数从标准输入读取数值到一个数组,然后调用各函数。如同模块stdrandom,统计模块也有更为广泛的测试需求。典型地,当我们调试或测试模块中的新函数时,我们会相应修改测试代码,每次测试一个函数。一个成熟且广泛使用的模块,如stdstats,也需要一个压力测试客户端,针对任何修改都需要进行详尽的测试。如果读者对类似客户端的内容感兴趣,可在本书官网提供的stdstats中找到相关内容(同时可参见本节习题第2题)。大多数资深程序员会告诉你,花在做单元测试和压力测试的任何时间都将物超所值。 ...

Get 程序设计导论:Python语言实践 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.