我有一系列的数字
lista= [100, 200, 350, 700, 950, 275, 563]
在R中,函数分位数如下:
Cutoff= quantile(lista,0.36,na.rm = FALSE,names = FALSE, type = 1)
在Python中有没有等价的函数?我读过关于分位数的Python文档,但是在R中没有类型1的选项。
voase2hg1#
当然,您可以使用numpy.quantile函数,但默认值相当于R中的type=7,正如注解中所述,您可以参考here以了解更多信息。numpy不提供R中type=1的等价物。使用虚拟数据,您可以执行以下操作:
numpy.quantile
type=7
numpy
type=1
import numpy as np def quantileType1(array, q): sorted_array = np.sort(array) n = len(sorted_array) i = n * q if i.is_integer(): return sorted_array[int(i)-1] else: j = int(i) return (1 - (i - j)) * sorted_array[j - 1] + (i - j) * sorted_array[j] lista= [100, 200, 350, 700, 950, 275, 563] Cutoff = quantileType1(lista, 0.36)
numpy.quantile函数的使用方法如下:
cutoff = np.quantile(lista, 0.36, interpolation='lower')
可能的quantile类型如下(来自numpy文档):[linear, lower, higher, nearest, midpoint, weighted, trapezoidal, mean, median]
quantile
[linear, lower, higher, nearest, midpoint, weighted, trapezoidal, mean, median]
1条答案
按热度按时间voase2hg1#
当然,您可以使用
numpy.quantile
函数,但默认值相当于R中的type=7
,正如注解中所述,您可以参考here以了解更多信息。numpy
不提供R中type=1
的等价物。使用虚拟数据,您可以执行以下操作:
numpy.quantile
函数的使用方法如下:可能的
quantile
类型如下(来自numpy文档):[linear, lower, higher, nearest, midpoint, weighted, trapezoidal, mean, median]