python中的哪个函数等价于R中的分位数type=1?

wljmcqd8  于 2023-03-05  发布在  Python
关注(0)|答案(1)|浏览(121)

我有一系列的数字

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的选项。

voase2hg

voase2hg1#

当然,您可以使用numpy.quantile函数,但默认值相当于R中的type=7,正如注解中所述,您可以参考here以了解更多信息。
numpy不提供R中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]

相关问题