Python运算(五)统计statistic模块

statistics模块为具有数字特性的数据提供数学统计计算函数,若无明确指明,支持的数据类型 int, float, decimal.Decimalfractions.Fraction。其它类型暂不支持,混合类型也不能独立操作,如果 输入的数据是混合类型,必须用map()函数转换成可识别的类型map(float, inpud_data)statistics模块中的统计函数有:

平均&中位数函数(平均值、中位数等)

函数 释义
statistic.mean() 返回数据的算术平均值,如果数据为空,则会触发StatisticsError。算术平均值容易受到异常值的影响,并不是一个稳定的估量值。
statistic.harmonic_mean() 返回调和优化平均值。调和平均值又被称为倒数平均值,是算术平均值的倒数。计算形式如下:数据a,b,c 的调和平均值为$\dfrac{3}{\dfrac{1}{a} + \dfrac{1}{b} + \dfrac{1}{c}}$ 如果数据为空,或数据存在负数,同样会触发StatisticsError
statistic.median() 返回数据的中位数,如果数据总和为偶数,则返回中间两个数字的平均值。中位数比较稳定,不太容易受异常数据的影响。如果数据为空,同样会触发StatisticsError
statistic.median_low() 返回较低平均值,当数据总数为偶数时,取中间位置较小的数值
statistic.median_high() 返回较高平均值,当数据总数为偶数时,取中间位置较大的数值
statistic.median_grouped(data, interval = 1) 返回分组连续数据的中位数,以50%位数计算,interval代表计算间距,默认为1
statistic.media_mode() 返回出现频率最高的数值
>>> import statistics
>>> statistics.mean([23.4,47.2,56.45,65.8])
48.2125
>>> statistics.harmonic_mean([2.4, 3.6, 12.3])
3.867248908296943
>>> statistics.median([12,4,6,8,9,14,35])
9
>>> statistics.median([1,3,5,7])
4.0
>>> statistics.median_low([1,3,5,7])
3
>>> statistics.median_high([1,3,5,7])
5
>>> statistics.median_grouped([52,52,53,54])
52.5
>>> statistics.median_grouped([1,2,2,3,4,4,4,4,4,5])
3.7
>>> statistics.median_grouped([1,3,5,7], interval =1)
4.5
>>> statistics.median_grouped([1,3,5,7], interval = 2)
4.0
>>> statistics.mode([1,1,2,3,3,3,3,4])
3
>>> statistics.mode(['red','blue','red','green','blue','red','green','blue','red'])
'red'

分布函数(方差、标准差等)

函数 释义
statistics.pstdev(data, mu=None) 返回数据的总体标准差,mu为平均值,如果给值则用指定的数值,如果没有指定,则自动计算
statistics.pvariance(data, mu=None) 返回数据的总体方差,mu为平均值,如果指定数据则用给定值,如果未给出,则自动计算
statistics.stdev(data, xbar=None) 返回数据的样品标准差,xbar如果指定则用给的值,如果没有指定则自动计算。
statistics.variance(data, xbar=None) 返回样本方差,如果指定xbar则用给的值,如果没有给出,则自动计算
>>> statistics.pstdev([1.5, 2.5, 2.5, 2.75, 3.25, 4.75])
0.986893273527251
>>> statistics.pvariance([1.5, 2.5, 2.5, 2.75, 3.25, 4.75])
0.9739583333333334
>>> statistics.stdev([1.5, 2.5, 2.5, 2.75, 3.25, 4.75])
1.0810874155219827
>>> statistics.variance([1.5, 2.5, 2.5, 2.75, 3.25, 4.75])
1.16875

有关Python针对数据的运算各个类型数据的运算和相关的算术模块整理完毕,正因为Python对数据运算处理的庞大,使得Python在数据分析之中占有重要的位置。同时有许多外置框架将Python数据结构改良和对统计模块的扩展,例如Numpy、Pandas等,非常方便数据清洗。