1. 引言

在做数据分析时,我们经常需要使用统计量来更加方便的了解数据的分布。但是统计量有多种计算方式,本文重点介绍常用的三种数据统计中常用的统计量,即均值,中位数和众数;并尝试使用一行Python代码来实现其具体计算。

闲话少说,我们直接开始吧!

2. 算术平均数

算术平均数又叫均值,定义相对简单,其计算公式为: 算术平均数=所有数之和/总个数
用代码实现如下:

def mean(lis):
    return sum(lis)/len(lis)

算术平均数是我们在日常中使用最为广泛的一个统计量,实际举例如下:

lis = [1,2,3,4,5]
print(mean(lis))   # 3 as (1+2+3+4+5)/5

3. 中位数

中位数是指数字列表中最中心的值。尽管很容易解释,但中位数比平均值更难计算。这是因为为了找到中位数,必须对列表中的数字进行排序。此外,我们必须区分两种情况。如果列表中元素的数量为奇数,则中位数是列表中最中心的成员。但是,如果列表中有偶数个元素,则需要确定两个最中心的数字的算术平均值。

使用数学公式描述如下:
【Python】使用一行代码实现均值,中位数和众数-LMLPHP
用代码实现如下:
【Python】使用一行代码实现均值,中位数和众数-LMLPHP
与算术平均值相比,中位数受极值(非常大或非常小)的影响较小,举例如下:

lis = [4,1,3,2,10000]
print(median(lis)) # 3
# if we sort lis, we get [1,2,3,4,10000]
#     the number in the middle is 3,
#     so 3 is the median
# The arithmetic mean is 2502.5 (inflated by extreme values)

请注意,如果我们的列表长度位偶数,则将有2个中间数字。因此,中位数是 2 个中间数字的平均值。

lis = [1,2,3,4,5,6]
print(median(lis))   # 3.5 as (3+4)/2

4. 众数

众数是一组数据中出现次数最多的数字,代码实现如下:

def mode(lis):
    return max(lis, key=lambda x:lis.count(x))

众数的概念不仅适用于数值型数据,也适用于字符串等数据类型。我们举例如下:

lis = [1,1,1,2,2,3]
print(mode(lis))   # 1 as it appears the most
lis = ["a", "a", "b", "b", "b", "c"]
print(mode(lis))   # "b" as it appears the most

5. 总结

本文重点介绍了在数据统计中最常使用的三个统计量,算术平均数,中位数以及众数,给出了其相关概念的定义和具体的Python实现。

您学废了嘛?

【Python】使用一行代码实现均值,中位数和众数-LMLPHP

07-23 15:08