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, возвращается этот массив.
-
См. также
-
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–2020 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.19/reference/generated/numpy.nanpercentile.html