Spec-Zone.ru › NumPy 1.14

numpy.nanpercentile

numpy.nanpercentile(a, q, axis=None, out=None, overwrite_input=False, interpolation='linear', keepdims=<class 'numpy._globals._NoValue'>) [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 : scalar или 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)

© 2005–2019 NumPy Developers
Licensed under the 3-clause BSD License.
https://docs.scipy.org/doc/numpy-1.14.5/reference/generated/numpy.nanpercentile.html

Spec-Zone.ru

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