📅  最后修改于: 2023-12-03 15:34:24.037000             🧑  作者: Mango
numpy.nanquantile()
是一个用于计算数组中nan值的分位数的函数。在处理含有nan值的数据时,可以用该函数来计算分位数。它与numpy.quantile()
函数类似,不同的是它能够处理包含nan值的数组。
numpy.nanquantile(a, q, axis=None, out=None, overwrite_input=False, interpolation='linear', keepdims=False)
a
:输入数组q
: 分位数,范围在 [0, 1]
之间axis
: 沿哪个轴计算分位数,默认为 Noneout
: 输出数组overwrite_input
: 如果为 True,将舍弃副本并在计算结果时覆盖输入数组。默认为 Falseinterpolation
: 插值方法。默认值为 'linear'
。keepdims
: 如果为True,则输出与输入具有相同的维度。默认值为 False。返回分位数,与q相同的形状和数据类型的数组。如果out=None
,则为新分配的数组。否则,返回指定的数组。
在以下示例中,我们将使用numpy.nanquantile()计算元素列表的第0%(最小值),第50%(中位数)和第100%(最大值)分位数。
import numpy as np
# Input array
a = [11, 9, np.nan, 3, 99, 22, 14, 88]
# nanquantile
print("0th percentile: ", np.nanquantile(a, 0))
print("50th percentile: ", np.nanquantile(a, 0.5))
print("100th percentile: ", np.nanquantile(a, 1))
输出结果:
0th percentile: 3.0
50th percentile: 15.0
100th percentile: 99.0
numpy.nanquantile()
中的interpolation
参数定义了如何将数据在q
和a
的值之间插值。可用的选项包括:
'linear'
:线性插值的默认值。'lower'
:返回第l q分位数的值。与愈合方式无关。'higher'
:返回高于h q分位数的值。与愈合方式无关。'midpoint'
:返回第q分位数的值。上一半的数据项中最接近的值。以下是使用不同插值方法的示例:
import numpy as np
# Input array
a = [11, 9, np.nan, 3, 99, 22, 14, 88]
# Interpolation methods
print("Linear interpolation: ", np.nanquantile(a, 0.5, interpolation='linear'))
print("Lower interpolation: ", np.nanquantile(a, 0.5, interpolation='lower'))
print("Higher interpolation: ", np.nanquantile(a, 0.5, interpolation='higher'))
print("Midpoint interpolation: ", np.nanquantile(a, 0.5, interpolation='midpoint'))
输出结果:
Linear interpolation: 15.0
Lower interpolation: 11.0
Higher interpolation: 88.0
Midpoint interpolation: 14.0