numpy.percentile()

Функция numpy.percentile() вычисляет процентиль массива — значение, ниже которого попадает заданная доля данных. Используется в статистике, контроле качества датчиков и обнаружении выбросов.

Сигнатура

numpy.percentile(a, q, axis=None, out=None, overwrite_input=False, method='linear', keepdims=False)

Параметры

  • a — входной массив.

  • q — процентиль или список процентилей в диапазоне [0, 100].

  • axis — ось вычисления.

  • method — алгоритм интерполяции ('linear', 'lower', 'higher', 'nearest', 'midpoint').

  • keepdims — сохранять размерность.

Возвращает

Скаляр или ndarray процентилей.

Пример 1. Медиана как 50-й процентиль

import numpy as np

a = np.array([1, 2, 3, 4, 5])
print(np.percentile(a, 50))
3.0

Пример 2. Несколько процентилей сразу

import numpy as np

a = np.array([10, 20, 30, 40, 50, 60, 70, 80, 90, 100])
print(np.percentile(a, [25, 50, 75]))
[32.5 55.  77.5]

Квартили — нижний, медиана, верхний.

Пример 3. Метод „nearest“

import numpy as np

a = np.array([1, 2, 3, 4])
print(np.percentile(a, 30, method='nearest'))
2

Возвращает реальный элемент массива без интерполяции.

Пример 4. Анализ показаний датчика

import numpy as np

# Расстояния от ультразвука за минуту
d = np.array([42, 43, 41, 44, 40, 99, 42, 43, 41, 100])
p95 = np.percentile(d, 95)
print(f"95-й процентиль: {p95:.1f} см")
95-й процентиль: 99.55 см

Значения выше 95-го процентиля можно считать выбросами.

Пример 5. Процентили по оси

import numpy as np

data = np.array([[1, 2, 3, 4],
                 [5, 6, 7, 8]])
print(np.percentile(data, 50, axis=1))
[2.5 6.5]

См. также

Примечание

Лицензия и источники

Техническое описание функции адаптировано из официальной документации NumPy (https://numpy.org/doc/stable/), BSD-3-Clause License. Примеры и пояснения — © AlashEd Wiki.