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.
- Параметры
-
-
aarray_like -
Вводной массив или объект, который может быть преобразован в массив, содержащий значения nan, которые необходимо проигнорировать.
-
qarray_like of float -
Процентиль или последовательность процентилей для вычисления, которые должны быть в пределах от 0 до 100 включительно.
-
axis{int, tuple of int, None}, optional -
Ось или оси, по которым вычисляются процентили. По умолчанию вычисляется(ются) процентиль(и) по сплющенной версии массива.
-
outndarray, optional -
Альтернативный выходной массив, в который поместить результат. Он должен иметь такую же форму и длину буфера, как ожидаемый выход, но тип (выхода) будет преобразован при необходимости.
-
overwrite_inputbool, 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’:
-
keepdimsbool, optional -
Если это установлено в True, оси, которые были уменьшены, остаются в результате как измерения с размером один. С этим параметром результат будет правильно транслироваться относительно исходного массива
a.Если это не значение по умолчанию, то оно будет передано (в особом случае пустого массива) функции
meanбазового массива. Если массив является подклассом иmeanне имеет параметрkeepdims, это вызовет ошибку RuntimeError.
-
- Возвращает
-
-
percentilescalar or ndarray -
Если
q— это одиночный процентиль иaxis=None, результат — скаляр. Если задано несколько процентилей, первая ось результата соответствует процентилям. Другие оси — это оси, оставшиеся после сокращенияa. Если вход содержит целые числа или числа с плавающей точкой меньшеfloat64, тип данных выходных данных —float64. В противном случае тип данных выходных данных такой же, как у входных. Еслиoutуказан, возвращается этот массив.
-
См. также
-
nanmean -
nanmedian -
эквивалентно
nanpercentile(..., 50) -
percentile, median,mean -
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–2021 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.20/reference/generated/numpy.nanpercentile.html