numpy.percentile
-
numpy.percentile(a, q, axis=None, out=None, overwrite_input=False, interpolation='linear', keepdims=False)[source] -
Вычислить q-й процентиль данных по указанной оси.
Возвращает q-й процентиль(и) элементов массива.
Параметры: -
a : array_like -
Входной массив или объект, который можно преобразовать в массив.
-
q : array_like of float -
Процентиль или последовательность процентилей для вычисления, которые должны быть в диапазоне от 0 до 100 включительно.
-
axis : {int, tuple of int, None}, optional -
Ось или оси, по которым вычисляются процентили. По умолчанию процентиль(и) вычисляются по сплющенной версии массива.
Изменено в версии 1.9.0: Поддерживается кортеж осей
-
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.
Добавлено в версии 1.9.0.
- ‘linear’:
-
keepdims : bool, optional -
Если это установлено в True, оси, которые были сокращены, остаются в результате в качестве измерений с размером один. С этим параметром результат будет правильно транслироваться относительно исходного массива
a.Добавлено в версии 1.9.0.
Возвращает: -
percentile : scalar or ndarray -
Если
q— единственный процентиль иaxis=None, то результат — скаляр. Если задано несколько процентилей, первая ось результата соответствует процентилям. Другие оси — это оси, оставшиеся после сокращенияa. Если вход содержит целые числа или числа с плавающей точкой меньшеfloat64, тип данных выходных данных —float64. В противном случае тип данных выходных данных такой же, как у входных данных. Еслиoutуказан, возвращается этот массив.
См. также
-
median - эквивалентно
percentile(..., 50)
-
quantile - эквивалентно процентилю, за исключением того, что 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 array([[10, 7, 4], [ 3, 2, 1]]) >>> np.percentile(a, 50) 3.5 >>> np.percentile(a, 50, axis=0) array([[ 6.5, 4.5, 2.5]]) >>> np.percentile(a, 50, axis=1) array([ 7., 2.]) >>> np.percentile(a, 50, axis=1, keepdims=True) array([[ 7.], [ 2.]])>>> m = np.percentile(a, 50, axis=0) >>> out = np.zeros_like(m) >>> np.percentile(a, 50, axis=0, out=out) array([[ 6.5, 4.5, 2.5]]) >>> m array([[ 6.5, 4.5, 2.5]])
>>> b = a.copy() >>> np.percentile(b, 50, axis=1, overwrite_input=True) array([ 7., 2.]) >>> assert not np.all(a == b)
Различные типы интерполяции можно визуализировать графически:
import matplotlib.pyplot as plt a = np.arange(4) p = np.linspace(0, 100, 6001) ax = plt.gca() lines = [ ('linear', None), ('higher', '--'), ('lower', '--'), ('nearest', '-.'), ('midpoint', '-.'), ] for interpolation, style in lines: ax.plot( p, np.percentile(a, p, interpolation=interpolation), label=interpolation, linestyle=style) ax.set( title='Interpolation methods for list: ' + str(a), xlabel='Percentile', ylabel='List item returned', yticks=a) ax.legend() plt.show() -
© 2005–2019 NumPy Developers
Licensed under the 3-clause BSD License.
https://docs.scipy.org/doc/numpy-1.15.4/reference/generated/numpy.percentile.html