Spec-Zone.ru › NumPy 1.19

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

Spec-Zone.ru

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