numpy.median()
Функция numpy.median() возвращает медиану массива — значение, разделяющее упорядоченную выборку пополам. Медиана устойчива к выбросам и часто полезнее среднего для шумных показаний ультразвукового датчика или ADC.
Сигнатура
numpy.median(a, axis=None, out=None, overwrite_input=False, keepdims=False)
Параметры
a— входной массив.axis— ось вычисления медианы.out— массив для результата.overwrite_input— разрешить изменение входного массива (экономия памяти).keepdims— сохранять размерность.
Возвращает
Скаляр или ndarray с медианами.
Пример 1. Медиана для нечётного числа элементов
import numpy as np
a = np.array([3, 1, 9, 5, 7])
print(np.median(a))
5.0
Пример 2. Медиана для чётного числа — среднее двух центральных
import numpy as np
a = np.array([1, 2, 3, 4])
print(np.median(a))
2.5
Пример 3. Устойчивость к выбросам
import numpy as np
# Расстояния от ультразвука, один сбойный замер 9999
d = np.array([42, 43, 41, 44, 9999, 42, 43])
print("mean:", np.mean(d))
print("median:", np.median(d))
mean: 1465.1428571428571
median: 43.0
Медиана отбросила «выскочку», среднее — нет.
Пример 4. Медиана по столбцам
import numpy as np
data = np.array([[10, 20, 30],
[11, 25, 31],
[99, 21, 29]]) # выброс
print(np.median(data, axis=0))
[11. 21. 30.]
Пример 5. Медианный фильтр окна
import numpy as np
signal = np.array([5, 6, 100, 7, 6, 5, 80, 6])
# Скользящая медиана окна 3
filtered = np.array([np.median(signal[i:i+3])
for i in range(len(signal) - 2)])
print(filtered)
[6. 7. 7. 6. 6. 6.]
См. также
Примечание
Лицензия и источники
Техническое описание функции адаптировано из официальной документации NumPy (https://numpy.org/doc/stable/), BSD-3-Clause License. Примеры и пояснения — © AlashEd Wiki.