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]:
- ‘inverted_cdf’
- ‘averaged_inverted_cdf’
- ‘closest_observation’
- ‘interpolated_inverted_cdf’
- ‘hazen’
- ‘weibull’
- ‘linear’ (по умолчанию)
- ‘median_unbiased’
- ‘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указан, вместо него возвращается этот массив.
См. также
nanmeannanmedian-
эквивалентно
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