Spec-Zone.ru › NumPy 1.15

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.5
>>> 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.15.4/reference/generated/numpy.nanpercentile.html

Spec-Zone.ru

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