Spec-Zone.ru › NumPy 2.0

numpy.nanpercentile

numpy.nanpercentile(a, q, axis=None, out=None, overwrite_input=False, method='linear', keepdims=<no value>, *, weights=None, interpolation=None)[source]

Вычисление q-й процентили данных по указанной оси, игнорируя значения nan.

Возвращает q-ю процентиль(и) элементов массива.

Новая в версии 1.9.0.

Параметры:
aarray_like

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

qarray_like из float

Процентиль или последовательность процентилей для вычисления, которые должны быть в диапазоне от 0 до 100 включительно.

axis{int, кортеж из int, None}, необязательно

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

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

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

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

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

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

Этот параметр определяет метод, используемый для оценки процентили. Существует множество различных методов, некоторые уникальны для 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.

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

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

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

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

Устаревшее имя для аргумента ключевого слова method.

Устарело начиная с версии 1.22.0.

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

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

См. также

nanmean
nanmedian

эквивалентно nanpercentile(..., 50)

percentile, median, mean
nanquantile

эквивалентно nanpercentile, за исключением q в диапазоне [0, 1].

Примечания

Для получения дополнительной информации см. numpy.percentile

Ссылки

[1]

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

Примеры

>>> a = np.array([[10., 7., 4.], [3., 2., 1.]])
>>> a[0][1] = np.nan
>>> a
array([[10.,  nan,   4.],
      [ 3.,   2.,   1.]])
>>> np.percentile(a, 50)
np.float64(nan)
>>> np.nanpercentile(a, 50)
3.0
>>> np.nanpercentile(a, 50, axis=0)
array([6.5, 2. , 2.5])
>>> np.nanpercentile(a, 50, axis=1, keepdims=True)
array([[7.],
       [2.]])
>>> m = np.nanpercentile(a, 50, axis=0)
>>> out = np.zeros_like(m)
>>> np.nanpercentile(a, 50, axis=0, out=out)
array([6.5, 2. , 2.5])
>>> m
array([6.5,  2. ,  2.5])
>>> b = a.copy()
>>> np.nanpercentile(b, 50, axis=1, overwrite_input=True)
array([7., 2.])
>>> assert not np.all(a==b)

© 2005–2024 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/2.0/reference/generated/numpy.nanpercentile.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API