Python 中的数理统计函数

pythonserver side programmingprogramming

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

相关文章