← Все вопросы
как найти среднее арифметическое, медиану и моду списка чисел на питоне
5
По информатике дали список оценок и просят найти среднее арифметическое, медиану и моду. Со средним разобрался через sum, а медиану и моду вообще не понимаю как считать в коде.
ocenki = [3, 5, 4, 5, 2, 5, 4]
sr = sum(ocenki) / len(ocenki)
print(sr)
Что такое медиана и мода и как их получить?
2 ответа
11
✓ Принятый ответ — помог автору
Самый простой способ — модуль statistics, там всё готовое:
import statistics
ocenki = [3, 5, 4, 5, 2, 5, 4]
print(statistics.mean(ocenki)) # среднее ~4.0
print(statistics.median(ocenki)) # медиана 4
print(statistics.mode(ocenki)) # мода 5
Что это вообще значит по-человечески:
- Среднее арифметическое — сумма всех чисел делить на их количество. Самое привычное «среднее».
- Медиана — если выстроить числа по возрастанию, это то, что окажется ровно посередине. Если чисел чётное количество — берут среднее двух центральных. Медиана хороша тем, что её не сбивают редкие огромные значения.
- Мода — число, которое встречается чаще всего. У тебя пятёрок три штуки, поэтому мода = 5.
Если нельзя пользоваться модулем, медиану руками так:
def median(nums):
s = sorted(nums)
n = len(s)
mid = n // 2
if n % 2 == 1:
return s[mid]
return (s[mid - 1] + s[mid]) / 2
print(median([3, 5, 4, 5, 2, 5, 4])) # 4
Главное в медиане — не забыть сначала отсортировать sorted(), иначе «середина» будет бессмысленной.
4
Моду без модуля можно через Counter:
from collections import Counter
ocenki = [3, 5, 4, 5, 2, 5, 4]
c = Counter(ocenki)
print(c.most_common(1)[0][0]) # 5
most_common(1) возвращает самый частый элемент вместе со счётчиком, поэтому добавляем [0][0], чтобы достать само число.
Ваш ответ
Войдите, чтобы ответить на вопрос.