Spec-Zone.ru › NumPy 1.17

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.

Параметры:
a : array_like

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

q : array_like of float

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

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

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

out : ndarray, optional

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

overwrite_input : bool, 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.
keepdims : bool, optional

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

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

Возвращает:
percentile : scalar 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–2019 NumPy Developers
Licensed under the 3-clause BSD License.
https://docs.scipy.org/doc/numpy-1.17.0/reference/generated/numpy.nanpercentile.html

Spec-Zone.ru

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