Python中的数学统计函数
Python 库的 statistics 模块包含用于使用数值数据类型(包括分数和十进制类型)计算统计公式的函数。
要使用本文中描述的函数,需要以下导入语句。
>>> 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 fractions 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 / 45666666666666667 = 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.2111111111111
stdev() − 此函数返回样本中数据的标准差。标准差是方差的平方根。
>>> num = [4, 9, 2, 11, 5, 22, 90, 32, 56, 70] >>> stdev(num) 31.324289474960338