numpy.nanpercentile
-
numpy.nanpercentile(a, q, axis=None, out=None, overwrite_input=False, interpolation='linear', keepdims=<class 'numpy._globals._NoValue'>)[source] -
Вычислить q-й процентиль данных по указанной оси, игнорируя значения nan.
Возвращает q-й процентиль(и) элементов массива.
Новая в версии 1.9.0.
Параметры: a : array_like
Входной массив или объект, который может быть преобразован в массив.
q : float в диапазоне [0,100] (или последовательность float)
Процентиль для вычисления, который должен быть в диапазоне от 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, оси, которые были уменьшены, остаются в результате в качестве измерений с размером один. С этим параметром результат будет корректно транслироваться относительно исходного массива
a.Если это значение отличное от значения по умолчанию, оно будет передано (в частном случае пустого массива) функции
meanбазового массива. Если массив является подклассом иmeanне имеет аргументаkeepdims, это вызовет ошибку RuntimeError.Возвращает: percentile : scalar или ndarray
Если
q— одиночный процентиль иaxis=None, то результат — скаляр. Если заданы несколько процентилей, первая ось результата соответствует процентилям. Другие оси — это оси, оставшиеся после сокращенияa. Если входные данные содержат целые числа или числа с плавающей запятой меньшеfloat64, тип данных выходных данных —float64. В противном случае тип данных выходных данных такой же, как у входных данных. Еслиoutуказан, возвращается этот массив.См. также
Примечания
Учитывая вектор
VдлиныN, q-й процентиль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)
- linear:
© 2005–2019 NumPy Developers
Licensed under the 3-clause BSD License.
https://docs.scipy.org/doc/numpy-1.14.5/reference/generated/numpy.nanpercentile.html