今天在学统计学,被一个 四分位数搞得焦头烂额,网上各种不靠谱,在这里提一句(垃圾百度)
最后通过各种途径找方法总结了下面这篇文章第一次写就当是个人的记录吧。
其实无论是python(describle方法)还是excel的(
QUARTILE()
)都可得到,但是原理呢?
网上的大部分说的头头是道要么你举一个奇数个的数列,要么就是错的最后花了一上午用python写了下面的这段代码,试了几个都还可以当然可能会有不完善的
nums=Series(x)
#首先x是且必须是有序的数列,这是一定的不然得出的结果是乱的
#q1,q2,q3是四分位数的三个节点位置
q1=(1+(len(nums)-1)*1/4)
q2=(1+(len(nums)-1)*2/4)
q3=(1+(len(nums)-1)*3/4)
print (nums)
numss=np.array([q1,q2,q3])
a=np.modf(numss)[0]
#这里的modf方法是num朋友的一个函数主要功能是返回数组内的浮点数的整数部分和小数部分形成两个新的数组(话说第一次遇见这个函数的时候,还标记了个神经病函数方法..结果竟然还真的很有用)
b=np.modf(numss)[1]
print (nums.describe())
print (q1,q2,q3)
print (a,b)
nums=nums.sort_values(ascending=True)
print ("上四分位:",(1-a[0])*nums[b[0]-1]+a[0]*nums[b[0]])
print ("中四分位:",(1-a[1])*nums[b[1]-1]+a[1]*nums[b[1]])
print ("下四分位:",(1-a[2])*nums[b[2]-1]+a[2]*nums[b[2]])