numpy.nanpercentile
-
numpy.nanpercentile(a, q, axis=None, out=None, overwrite_input=False, interpolation='linear', keepdims=<no value>)[source] -
Вычислить q-й процентиль данных по указанной оси, игнорируя значения nan.
Возвращает q-й процентиль(и) элементов массива.
Новая в версии 1.9.0.
Параметры: -
a : array_like -
Входной массив или объект, который можно преобразовать в массив, содержащий значения nan, которые необходимо игнорировать.
-
q : array_like of float -
Процентиль или последовательность процентилей для вычисления, которые должны быть в диапазоне от 0 до 100 включительно.
-
axis : {int, tuple of int, None}, optional -
Ось или оси, по которым вычисляются процентили. По умолчанию вычисляются процентили по уплощенной версии массива.
-
out : ndarray, optional -
Альтернативный выходной массив, в который следует поместить результат. Он должен иметь такую же форму и длину буфера, как и ожидаемый результат, но тип (результата) будет преобразован при необходимости.
-
overwrite_input : bool, optional -
Если True, то разрешить входному массиву
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.
- ‘linear’:
-
keepdims : bool, optional -
Если это установлено в True, оси, которые были сокращены, остаются в результате как измерения с размером один. С этим вариантом результат будет правильно транслироваться по отношению к исходному массиву
a.Если это значение не по умолчанию, оно будет передано (в специальном случае пустого массива) в функцию
meanбазового массива. Если массив является подклассом, и уmeanнет аргументаkeepdims, это вызовет ошибку RuntimeError.
Возвращает: -
percentile : scalar or ndarray -
Если
q— единственный процентиль иaxis=None, то результат — скаляр. Если задано несколько процентилей, первая ось результата соответствует процентилям. Другие оси — это оси, которые остаются после сокращенияaЕсли вход содержит целые или плавающие числа меньшеfloat64, тип выходных данных —float64. В противном случае тип выходных данных такой же, как у входных. Еслиoutуказано, возвращается этот массив.
См. также
-
nanmedian - эквивалентно
nanpercentile(..., 50)
-
nanquantile - эквивалентно nanpercentile, но с q в диапазоне [0, 1].
Примечания
Учитывая вектор
VдлинойN, 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.0 >>> 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.17.0/reference/generated/numpy.nanpercentile.html