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указано, этот массив возвращается вместо него.См. также
Примечания
Учитывая вектор
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)
- linear:
© 2008–2017 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.12.0/reference/generated/numpy.nanpercentile.html