Python 中的数理统计函数
Python 库的 statistics 模块包含使用数字数据类型(包括分数和小数类型)计算统计公式的函数。
使用本文介绍的函数需要以下 import 语句。
>>> from statistics import *
以下函数计算样本数据的集中趋势。
mean() − 此函数以序列或迭代器的形式计算数据的算术平均值。
>>> from statistics import mean >>> numbers = [12,34,21,7,56] >>> mean(numbers) 26
样本数据可能包含 Decimal 对象或 Fraction 对象
>>> from decimal import Decimal >>> numbers = [12,34,21,Decimal('7'),56] >>> mean(numbers) Decimal('26') >>> from ratios import Fraction >>> numbers = [12,20.55,Fraction(4,5),21,56] >>> mean(numbers) 22.07
harmonic_mean() −调和平均值是通过对样本数据中元素的倒数取算术平均值,然后取算术平均值本身的倒数来计算的。
样本 = [1,2,3,4,5]
倒数 = [1/1, 1/2, 1/3, 1/4, 1/5] = 2.28333333333
平均值 = 2.28333333333/5 = 0. 45666666666666667
调和平均值 = 1 / 4566666666666667 = 2.189784218663093
>>> harmonic_mean([1,2,3,4,5]) 2.18978102189781
median() − 中位数是样本数据的中间值。数据自动按升序排列以找到中位数。如果元素数量为奇数,则中位数为中间值。如果数量为奇数,则两个最中间数字的平均数为中位数。
>>> median([2,5,4,8,6]) 5 >>> median([11,33,66,55,88,22]) 44.0
mode() − 此函数返回样本中最常见的值。此函数可应用于数值或非数值数据。
>>> mode((4,7,8,4,9,7,12,4,8)) 4 >>> mode(['cc','aa','dd','cc','ff','cc']) 'cc'
以下函数处理样本中元素与中心值的离散度测量。
variance() − 此函数反映样本中数据的变异性或离散度。方差大意味着数据分散。方差越小,表示数据聚集程度越高。
以下是查找方差的过程
- 查找样本中所有元素的算术平均值。
- 求平均值与每个元素之差的平方,然后将平方相加。
- 如果样本大小为 n,则将总和除以 n-1 以获得方差
从数学上讲,上述过程由以下公式 − 表示
$$s^2 = \frac{1}{n-1}\displaystyle\displaystyle\sum\limits_{i=1}^n(x_{i}-\overline{x})^2$$
幸好 variance() 函数为你。
>>> num = [4, 9, 2, 11, 5, 22, 90, 32, 56, 70] >>> variance(num) 981.21111111111111
stdev() − 此函数返回样本中数据的标准差。标准差是方差的平方根。
>>> num = [4, 9, 2, 11, 5, 22, 90, 32, 56, 70] >>> stdev(num) 31.324289474960338