当我们谈论数据分析和统计时,Python 是一门非常流行的语言。幸运的是,Python 3 为我们提供了 INLINECODE4633d34c 模块,其中包含了一些非常有用的函数,比如 INLINECODEbf34d51d、INLINECODE34cd3ccb、INLINECODE6662c412 等。
INLINECODE0c0651de 模块中的 INLINECODE536da6bd 函数可以用来计算未排序列表的中位数。使用 median() 函数最大的优点在于,我们在将数据列表作为参数传递之前,不需要先对其进行排序。
中位数是将数据样本或概率分布较高的一半与较低的一半分开的值。对于数据集而言,它可以被视为“中间值”。在统计学和概率论中,中位数是衡量数据集属性中心趋势的指标。与平均值相比,中位数有一个巨大的优势:它不会受到极大或极小值的影响而产生太大的偏斜。中位数要么包含在提供的数据集中,要么不会偏离提供的数据太远。
- 对于元素数量为奇数的集合,中位数就是中间的那个值。
- 对于元素数量为偶数的集合,中位数是中间两个元素的平均值。
Median can be represented by the following formula :
{displaystyle \mathrm {median} (a)={\frac {a_{\lfloor \#x\div 2\rfloor }+a_{\lfloor \#x\div 2+0.5\rfloor }}{2}}}
> 语法: median( [data-set] )
> 参数:
> [data-set] :包含一组数值的列表、元组或可迭代对象
> 返回值: 返回包含数据的可迭代对象的中位数(中间值)
> 异常: 当传递的可迭代对象为空或列表为 null 时,会引发 StatisticsError 异常。
代码 #1 :基本用法
让我们看看下面的代码,演示了 median() 函数的工作原理。
Python3
CODEBLOCK_51ff7a61
输出:
Median of data-set is : 3.5
代码 #2:不同数据集的应用
在这段代码中,我们可以看到 median() 如何处理各种范围的数据集。
Python3
CODEBLOCK_f16b1705
输出:
Median of data-set 1 is 5
Median of data-set 2 is 5.9
Median of data-set 3 is 2
Median of data-set 4 is -5
Median of data-set 5 is 0.0
代码 #3:演示 StatisticsError
最后,让我们看看当我们在空数据集上调用 median() 时会发生什么。
Python3
CODEBLOCK_48fdf12e
输出:
Traceback (most recent call last):
File "/home/3c98774036f97845ee9f65f6d3571e49.py", line 12, in
print(median(empty))
File "/usr/lib/python3.5/statistics.py", line 353, in median
raise StatisticsError("no median for empty data")
statistics.StatisticsError: no median for empty data
应用场景:
在实际应用中,我们通常会根据相应的总体值的估计效果来比较不同的离散度和总体趋势度量方法。例如,通过比较可以发现,当数据未受重尾数据分布或混合数据分布的数据污染时,样本均值在统计上比样本中位数更有效;但在其他情况下则效率较低,且样本中位数的效率对于广泛的分布来说更高。具体来说,对于大型正态样本,中位数相比于最小方差均值具有 64% 的效率。