Spec-Zone.ru › NumPy 1.10

numpy.nanpercentile

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

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

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

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

Параметры:

a : array_like

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

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

Перцентиль для вычисления, который должен быть в пределах от 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, оси, которые были уменьшены, остаются в результате в качестве измерений с размером один. С этим параметром результат будет правильно транслироваться относительно исходного arr.

Возвращает:

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

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

См. также

nanmean, nanmedian, percentile, median, mean

Примечания

Для данного вектора V длиной N q-тый перцентиль V — это q-тое ранжированное значение в отсортированной копии V. Значения и расстояния двух ближайших соседей, а также параметр interpolation определят перцентиль, если нормализованное ранжирование не совпадает точно с q. Эта функция аналогична медиане, если q=50, аналогично минимуму, если q=0``and the same as the maximum if ``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,  4.5,  2.5]])
>>> np.nanpercentile(a, 50, axis=1)
array([[ 7.],
       [ 2.]])
>>> m = np.nanpercentile(a, 50, axis=0)
>>> out = np.zeros_like(m)
>>> np.nanpercentile(a, 50, axis=0, out=m)
array([[ 6.5,  4.5,  2.5]])
>>> m
array([[ 6.5,  4.5,  2.5]])
>>> b = a.copy()
>>> np.nanpercentile(b, 50, axis=1, overwrite_input=True)
array([[ 7.],
       [ 2.]])
>>> assert not np.all(a==b)
>>> b = a.copy()
>>> np.nanpercentile(b, 50, axis=None, overwrite_input=True)
array([ 3.5])

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

Spec-Zone.ru

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