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. В противном случае тип данных выходных данных совпадает с типом данных входных данных.См. также
Примечания
Для данного вектора 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]) - linear:
© 2008–2016 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.10.1/reference/generated/numpy.nanpercentile.html