📜  Python中的 numpy.nanquantile()(1)

📅  最后修改于: 2023-12-03 15:34:24.037000             🧑  作者: Mango

Python中的 numpy.nanquantile()

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: 沿哪个轴计算分位数,默认为 None
  • out: 输出数组
  • overwrite_input: 如果为 True,将舍弃副本并在计算结果时覆盖输入数组。默认为 False
  • interpolation: 插值方法。默认值为 '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参数定义了如何将数据在qa的值之间插值。可用的选项包括:

  • '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