/
Вопросы и ответы
/
Python
/

Какая функция нужна для вычисления среднего арифметического в Python?

Какая функция нужна для вычисления среднего арифметического в Python?

4 года назад

Andrey Moshkov

Ответы

0

В модуле statistics есть подходящая функция mean(), принимающая набор чисел (кортеж, список, массив и т.д.) и возвращающая их среднее арифметическое.

Пример:

1
2
3
4
from statistics import mean

it = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
mean(it) # 5.5

4 года назад

Карина Абдуллаева

0

Для вычисления среднего арифметического в Python можно использовать следующие функции:

  • sum() — возвращает сумму всех элементов списка.
  • len() — возвращает количество элементов в списке.

Пример:

1
2
3
numbers = [4, 8, 6, 5, 3, 2]
average = sum(numbers) / len(numbers)
print(average) # 4.666666666666667

2 года назад

Алёна Шереметьева

0

Среднее арифметическое — сумма чисел, делённая на их количество. В Python его считают так:

1
2
numbers = [2, 4, 4, 5, 10]
print(sum(numbers) / len(numbers))  # => 5.0

Готовая функция есть в модуле statistics:

1
2
3
from statistics import mean

print(mean([2, 4, 4, 5, 10]))  # => 5

Какой способ выбрать

СпособПримерКогда использовать
sum() / len()sum(d) / len(d)без импортов, для списка чисел
statistics.mean()mean(d)понятное название, работает с Decimal и Fraction
statistics.fmean()fmean(d)быстрее mean(), всегда возвращает float. Python 3.8+
numpy.mean()np.mean(arr)для больших массивов и таблиц

Среднее чисел, которые ввёл пользователь

1
2
numbers = list(map(int, input().split()))   # ввод: 3 5 7
print(sum(numbers) / len(numbers))          # => 5.0

Округлить результат:

1
2
3
avg = sum(numbers) / len(numbers)
print(round(avg, 2))     # число с двумя знаками
print(f"{avg:.2f}")      # строка с двумя знаками

Среднее и медиана

Если в данных есть выброс, среднее его выдаёт. Медиана — значение посередине отсортированного списка, на выбросы она почти не реагирует:

1
2
3
4
5
from statistics import mean, median

salaries = [50, 55, 60, 65, 500]
print(mean(salaries))    # => 146
print(median(salaries))  # => 60

Пустой список

1
2
3
4
5
sum([]) / len([])
# ZeroDivisionError: division by zero

mean([])
# StatisticsError: mean requires at least one data point

Проверьте список перед расчётом:

1
avg = sum(numbers) / len(numbers) if numbers else 0

Среднее по столбцу таблицы

1
2
3
4
import pandas as pd

df = pd.read_csv("grades.csv")
print(df["score"].mean())

Встроенные функции и списки разбирают в бесплатном курсе «Основы Python», статистику на pandas — на курсе «Python для анализа данных».

18 дней назад

Никита Вихров

+7 800 100 22 47

бесплатно по РФ

+7 495 085 21 62

бесплатно по Москве

108813 г. Москва, вн.тер.г. поселение Московский,
г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3
ОГРН 1217300010476
ИНН 7325174845