numpy.nanquantile#

numpy.nanquantile(a, q, axis=None, out=None, overwrite_input=False, method='linear', keepdims= значение>, *, weights=None)[источник]#

Вычислить q-й квантиль данных вдоль указанной оси, игнорируя значения nan. Возвращает q-й квантиль(и) элементов массива.

Параметры:
aarray_like

Входной массив или объект, который можно преобразовать в массив, содержащий значения nan, которые следует игнорировать

qarray_like из float

Вероятность или последовательность вероятностей для вычисляемых квантилей. Значения должны быть в диапазоне от 0 до 1 включительно.

ось{int, tuple of int, None}, optional

Ось или оси, вдоль которых вычисляются квантили. По умолчанию вычисляется квантиль(и) вдоль сглаженной версии массива.

выходndarray, необязательно

Альтернативный выходной массив для размещения результата. Он должен иметь ту же форму и длину буфера, что и ожидаемый вывод, но тип (вывода) будет приведён при необходимости.

overwrite_inputbool, необязательно

Если True, то разрешить входной массив a для модификации промежуточными вычислениями, чтобы сэкономить память. В этом случае содержимое входного a после завершения этой функции не определено.

методstr, optional

Этот параметр определяет метод для оценки квантиля. Существует много различных методов, некоторые уникальны для NumPy. Смотрите примечания для объяснения. Опции отсортированы по их типу R как обобщено в статье H&F [1] являются:

  1. ‘inverted_cdf’

  2. 'averaged_inverted_cdf'

  3. ‘closest_observation’

  4. 'interpolated_inverted_cdf'

  5. 'hazen'

  6. 'weibull'

  7. 'linear' (по умолчанию)

  8. ‘median_unbiased’

  9. 'normal_unbiased'

Первые три метода являются разрывными. NumPy дополнительно определяет следующие разрывные вариации опции по умолчанию 'linear' (7.):

  • 'lower'

  • 'higher',

  • 'midpoint'

  • ‘nearest’

Изменено в версии 1.22.0: Этот аргумент ранее назывался "interpolation" и предлагал только "linear" по умолчанию и последние четыре опции.

keepdimsbool, необязательно

Если установлено значение True, оси, которые были сокращены, остаются в результате как измерения с размером один. С этой опцией результат будет корректно транслироваться на исходный массив a.

Если это значение отличается от значения по умолчанию, оно будет передано (в особом случае пустого массива) в mean функция базового массива. Если массив является подклассом и mean не имеет аргумента keepdims это вызовет RuntimeError.

весаarray_like, необязательный

Массив весов, связанных со значениями в a. Каждое значение в a вносят вклад в квантиль в соответствии со своим связанным весом. Массив весов может быть либо одномерным (в этом случае его длина должна быть равна размеру a вдоль заданной оси) или той же формы, что и a. Если weights=None, тогда все данные в a предполагаются имеющими вес, равный единице. Только method="inverted_cdf" поддерживает веса.

Новое в версии 2.0.0.

Возвращает:
квантильскаляр или ndarray

Если q это одиночная вероятность и axis=None, тогда результат является скаляром. Если задано несколько уровней вероятности, первая ось результата соответствует квантилям. Остальные оси — это оси, которые остаются после сокращения a. Если входные данные содержат целые числа или числа с плавающей точкой меньше float64, выходной тип данных — float64. В противном случае тип выходных данных совпадает с типом входных данных. Если выход указан, возвращается этот массив.

Смотрите также

quantile
nanmean, nanmedian
nanmedian

эквивалентно nanquantile(..., 0.5)

nanpercentile

то же, что и nanquantile, но с q в диапазоне [0, 100].

Примечания

Поведение numpy.nanquantile совпадает с numpy.quantile (игнорируя значения nan). Для получения дополнительной информации см. numpy.quantile.

Ссылки

[1]

R. J. Hyndman и Y. Fan, «Выборочные квантили в статистических пакетах», The American Statistician, 50(4), стр. 361-365, 1996

Примеры

>>> import numpy as np
>>> a = np.array([[10., 7., 4.], [3., 2., 1.]])
>>> a[0][1] = np.nan
>>> a
array([[10.,  nan,   4.],
      [ 3.,   2.,   1.]])
>>> np.quantile(a, 0.5)
np.float64(nan)
>>> np.nanquantile(a, 0.5)
3.0
>>> np.nanquantile(a, 0.5, axis=0)
array([6.5, 2. , 2.5])
>>> np.nanquantile(a, 0.5, axis=1, keepdims=True)
array([[7.],
       [2.]])
>>> m = np.nanquantile(a, 0.5, axis=0)
>>> out = np.zeros_like(m)
>>> np.nanquantile(a, 0.5, axis=0, out=out)
array([6.5, 2. , 2.5])
>>> m
array([6.5,  2. ,  2.5])
>>> b = a.copy()
>>> np.nanquantile(b, 0.5, axis=1, overwrite_input=True)
array([7., 2.])
>>> assert not np.all(a==b)