Python

您所在的位置:网站首页 python中位数计算 Python

Python

2023-03-04 01:24| 来源: 网络整理| 查看: 265

怎么计算四分位数

先理解四分位数怎么计算:可参考https://zhuanlan.zhihu.com/p/235345817,

假设数列一共有n个数

1)当 (n+1)/4可以整除时,

Q1第在(n+1)/4位

Q2第 (n+1)/2位

Q3第(n+1)/4*3位

举例 1 2 2 5 6 9 9 这个数列

Q1在第 (7+1)/4 =2 位,即Q1=2

Q2在第(7+1)/2=4位,即Q2=5

Q3在第(7+1)/4*3=6位,即Q3=9

2)当 (n+1)/4不能整除时

举例 数列 1 2 3 4 5 6 7 8

Q1在 (8+1)/4=2.25位, 介于第二和第三位之间,但是更靠近第二位。所以第二位数权重占75%,第三位数权重占25%。Q1=(2*0.75+3*0.25)/(0.75+0.25)=2.25

Q2在 (8+1)/2=4.5位,即第4和第5位的平均数,Q2=4.5

同理Q3在(8+1)/4*3=6.75位,在第六位和第七位之间,更靠近第7位。所以第7位权重75%,第6位权重25%。

Q3=(7*0.75+6*0.25)/(0.75+0.25)=6.75

代码实现 import matplotlib.pyplot as plt #s = [5,9,13,15,16,17,19,21,22,25,26,26,29,30,32,39,52] s = [7, 15, 36, 39, 40, 41] #判断能不能整除 if (len(s)+1)%4 ==0: #Q1/Q2/Q3的位置 q1 = int((len(s)+1)/4-1) q2 = int(2*(len(s)+1)/4-1) q3 = int(3*(len(s)+1)/4-1) print('Q1是:{},Q2是{},Q3是{}'.format(s[q1],s[q2],s[q3])) else: q1 = (len(s)+1)/4-1 #判断是否超过.5 int_q1 = int(q1) if q1int_q1+0.5: q1_value = s[int_q1]*0.25+s[int_q1+1]*0.75 else: q1_value = s[int_q1]*0.5+s[int_q1+1]*0.5 #下面计算Q2 if (len(s)+1)%2 ==0: q2 = int((len(s)+1)/2-1) #位置 q2_value = s[q2] else: q2 = int((len(s)+1)/2-1) q2_value = (s[q2]+s[q2+1])/2 #下面计算Q3 q3 = 3*(len(s)+1)/4-1 #判断是否超过.5 int_q3 = int(q3) if q3int_q3+0.5: q3_value = s[int_q3]*0.25+s[int_q3+1]*0.75 else: q3_value = s[int_q3]*0.5+s[int_q3+1]*0.5 print('Q1是:{},Q2是{},Q3是{}'.format(q1_value,q2_value,q3_value)) plt.boxplot(s) plt.show() 结果展示



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3