Spec-Zone.ru › NumPy 2.0

numpy.nanquantile

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

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

Добавлен в версии 1.15.0.

Параметры:
aarray_like

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

qarray_like из float

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

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.

Возвращаемое значение:
quantileскаляр или ndarray

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

См. также

quantile
nanmean, nanmedian
nanmedian

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

nanpercentile

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

Примечания

Дополнительную информацию можно найти в numpy.quantile

Ссылки

[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.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)

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

Spec-Zone.ru

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