Spec-Zone.ru › NumPy 1.12

numpy.nanpercentile

numpy.nanpercentile(a, q, axis=None, out=None, overwrite_input=False, interpolation='linear', keepdims=<class numpy._globals._NoValue at 0x40b6a26c>) [source]

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

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

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

Параметры:

a : array_like

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

q : float в диапазоне [0,100] (или последовательность float)

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

axis : {int, последовательность int, None}, необязательно

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

out : ndarray, необязательно

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

overwrite_input : bool, необязательно

Если True, разрешить использование памяти входного массива a для вычислений. Входной массив будет изменён вызовом percentile. Это сэкономит память, когда вам не нужно сохранять содержимое входного массива. В этом случае вы не должны делать никаких предположений о содержимом входного a после завершения работы этой функции – считайте его неопределённым. По умолчанию False. Если 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, необязательно

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

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

Возвращает:

percentile : скаляр или ndarray

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

См. также

nanmean, nanmedian, percentile, median, mean

Примечания

Учитывая вектор V длины N, q-я процентиль 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)

© 2008–2017 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.12.0/reference/generated/numpy.nanpercentile.html

Spec-Zone.ru

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