import statistics statistics.median_grouped(data, interval=1)
data
- данные, последовательность или итерация,interval=1
- интервал класса,data
.Функция median_grouped()
модуля statistics
возвращает медиану сгруппированных непрерывных данных, рассчитанную как 50-й процентиль, при помощи интерполяции.
data
может быть последовательностью или итерацией. data
пусты, то возникает ошибка StatisticsError
.>>> import statistics >>> statistics.median_grouped([52, 52, 53, 54]) # 52.5
В следующем примере данные округлены, так что каждое значение представляет собой средний точку классов данных, например 1 - это средняя точка класса 0.5-1.5, 2 - средняя точка 1.5-2.5, 3 - средняя точка 2.5-3.5 и т. д. При указанных данных среднее значение попадает где-то в класс 3.5-4.5. Для этой оценки используется интерполяция:
>>> import statistics >>> statistics.median_grouped([1, 2, 2, 3, 4, 4, 4, 4, 4, 5]) # 3.7
Необязательный аргумент interval
представляет интервал класса данных и по умолчанию равен 1. Изменение интервала классов естественно приведет к изменению интерполяции:
>>> import statistics >>> statistics.median_grouped([1, 3, 3, 5, 7], interval=1) # 3.25 >>> statistics.median_grouped([1, 3, 3, 5, 7], interval=2) # 3.5
Деталь реализации CPython: при некоторых обстоятельствах функция statistics.median_grouped()
может принудительно перевести элементы последовательности в числа типа float
. Такое поведение, вероятно, изменится в будущем.