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.