# 求分位数 def get_quartiles(result_list,quartile_numer): ''' result_list:是待计算的分位数的数列,用list表示 quartile_numer:是要计算的分位数的比例 ''' result_list=sorted(result_list) num=len(result_list) ly=(num+1)*quartile_numer ly_int,ly_decimal=int(ly),ly-int(ly) # 使用插入法调整相应的数字,百分位数的值,可能就不在原来的序列中了 return result_list[ly_int-1]+(result_list[ly_int]-result_list[ly_int-1])*ly_decimal
此算法原理来自CFA的课程。
以前自己计算分位数的时候,总是取相应位置最近的一个原序列的数字,这个算法用了插值,计算新的数字。