statistics模块为具有数字特性的数据提供数学统计计算函数,若无明确指明,支持的数据类型 int, float, decimal.Decimal 和 fractions.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等,非常方便数据清洗。