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.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.15.4/reference/generated/numpy.nanpercentile.html