← Все вопросы

как найти среднее арифметическое, медиану и моду списка чисел на питоне

Задан 9 месяцев назад954 просмотров2 ответа
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], чтобы достать само число.

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект