Spec-Zone.ru › NumPy 1.20

numpy.nanpercentile

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

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

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

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

Параметры
aarray_like

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

qarray_like of float

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

axis{int, tuple of int, None}, optional

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

outndarray, optional

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

overwrite_inputbool, optional

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

interpolation{‘linear’, ‘lower’, ‘higher’, ‘midpoint’, ‘nearest’}

Этот необязательный параметр указывает метод интерполяции, который следует использовать, когда желаемый процентиль находится между двумя точками данных i < j:

  • ‘linear’: i + (j - i) * fraction, где fraction — дробная часть индекса, окружённая i и j.
  • ‘lower’: i.
  • ‘higher’: j.
  • ‘nearest’: i или j, что ближе.
  • ‘midpoint’: (i + j) / 2.
keepdimsbool, optional

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

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

Возвращает
percentilescalar or ndarray

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

См. также

nanmean
nanmedian

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

percentile, median, mean
nanquantile

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

Примечания

Учитывая вектор V длины N, q-й процентиль V — это значение q/100 на пути от минимума к максимуму в отсортированной копии V. Значения и расстояния двух ближайших соседей, а также параметр interpolation определят процентиль, если нормализованное ранжирование не соответствует точно расположению q. Эта функция эквивалентна медиане, если q=50, минимуму, если q=0 и максимуму, если q=100.

Примеры

>>> 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)
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–2021 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.20/reference/generated/numpy.nanpercentile.html

Spec-Zone.ru

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