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. 中位数
中位数是指数字列表中最中心的值。尽管很容易解释,但中位数比平均值更难计算。这是因为为了找到中位数,必须对列表中的数字进行排序。此外,我们必须区分两种情况。如果列表中元素的数量为奇数,则中位数是列表中最中心的成员。但是,如果列表中有偶数个元素,则需要确定两个最中心的数字的算术平均值。
使用数学公式描述如下:
用代码实现如下:
与算术平均值相比,中位数受极值(非常大或非常小)的影响较小,举例如下:
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实现。
您学废了嘛?