Как найти среднее значение списка питон

EDIT:

I added two other ways to get the average of a list (which are relevant only for Python 3.8+). Here is the comparison that I made:

import timeit
import statistics
import numpy as np
from functools import reduce
import pandas as pd
import math

LIST_RANGE = 10
NUMBERS_OF_TIMES_TO_TEST = 10000

l = list(range(LIST_RANGE))

def mean1():
    return statistics.mean(l)


def mean2():
    return sum(l) / len(l)


def mean3():
    return np.mean(l)


def mean4():
    return np.array(l).mean()


def mean5():
    return reduce(lambda x, y: x + y / float(len(l)), l, 0)

def mean6():
    return pd.Series(l).mean()


def mean7():
    return statistics.fmean(l)


def mean8():
    return math.fsum(l) / len(l)


for func in [mean1, mean2, mean3, mean4, mean5, mean6, mean7, mean8 ]:
    print(f"{func.__name__} took: ",  timeit.timeit(stmt=func, number=NUMBERS_OF_TIMES_TO_TEST))

These are the results I got:

mean1 took:  0.09751558300000002
mean2 took:  0.005496791999999973
mean3 took:  0.07754683299999998
mean4 took:  0.055743208000000044
mean5 took:  0.018134082999999968
mean6 took:  0.6663848750000001
mean7 took:  0.004305374999999945
mean8 took:  0.003203333000000086

Interesting! looks like math.fsum(l) / len(l) is the fastest way, then statistics.fmean(l), and only then sum(l) / len(l). Nice!

Thank you @Asclepius for showing me these two other ways!


OLD ANSWER:

In terms of efficiency and speed, these are the results that I got testing the other answers:

# test mean caculation

import timeit
import statistics
import numpy as np
from functools import reduce
import pandas as pd

LIST_RANGE = 10
NUMBERS_OF_TIMES_TO_TEST = 10000

l = list(range(LIST_RANGE))

def mean1():
    return statistics.mean(l)


def mean2():
    return sum(l) / len(l)


def mean3():
    return np.mean(l)


def mean4():
    return np.array(l).mean()


def mean5():
    return reduce(lambda x, y: x + y / float(len(l)), l, 0)

def mean6():
    return pd.Series(l).mean()



for func in [mean1, mean2, mean3, mean4, mean5, mean6]:
    print(f"{func.__name__} took: ",  timeit.timeit(stmt=func, number=NUMBERS_OF_TIMES_TO_TEST))

and the results:

mean1 took:  0.17030245899968577
mean2 took:  0.002183011999932205
mean3 took:  0.09744236000005913
mean4 took:  0.07070840100004716
mean5 took:  0.022754742999950395
mean6 took:  1.6689282460001778

so clearly the winner is:
sum(l) / len(l)

В этой статье мы рассмотрим различные способы найти среднее значение списка в списке Python. Среднее значение – это значение, которое представляет весь набор элементов данных или элементов.

Формула: Среднее значение = сумма чисел / общее количество.

Содержание

  1. Методы поиска среднего значения списка
  2. Функция mean()
  3. Использование функции sum()
  4. 3. Использование reduce() и lambda()
  5. Функция operator.add() для поиска среднего значения списка
  6. Метод NumPy average() для вычисления среднего значения списка

Методы поиска среднего значения списка

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

  • Функция mean();
  • Встроенный метод sum();
  • Методы lambda() и reduce();
  • Метод operator.add().

Функция mean()

Python 3 имеет модуль статистики, который содержит встроенную функцию для вычисления среднего числа. Функция statistics.mean() используется для вычисления среднего входного значения или набора данных.

Функция mean() принимает список, кортеж или набор данных, содержащий числовые значения, в качестве параметра и возвращает среднее значение элементов данных.

Синтаксис:

mean(data-set/input-values)

Пример:

from statistics import mean 

inp_lst = [12, 45, 78, 36, 45, 237.11, -1, 88] 
list_avg = mean(inp_lst) 

print("Average value of the list:n") 
print(list_avg) 
print("Average value of the list with precision upto 3 decimal value:n")
print(round(list_avg,3))

В приведенном выше фрагменте кода мы использовали метод statistics.round() для округления выходного среднего до определенного десятичного значения.

Синтаксис:

statistics.round(value, precision value)

Вывод:

Average value of the list:

67.51375
Average value of the list with precision upto 3 decimal value:

67.514

Использование функции sum()

Функция statistics.sum() также может использоваться для поиска среднего значения данных в списке Python.

Функция statistics.len() используется для вычисления длины списка, т.е. количества элементов данных, присутствующих в списке.

Синтаксис:

len(input-list)

Кроме того, функция statistics.sum() используется для вычисления суммы всех элементов данных в списке.

Синтаксис:

sum(input-list)

Примечание: среднее значение = (сумма) / (количество).

Пример:

from statistics import mean 

inp_lst = [12, 45, 78, 36, 45, 237.11, -1, 88]

sum_lst = sum(inp_lst)

lst_avg = sum_lst/len(inp_lst)
print("Average value of the list:n") 
print(lst_avg) 
print("Average value of the list with precision upto 3 decimal value:n")
print(round(lst_avg,3))

Вывод:

Average value of the list:

67.51375
Average value of the list with precision upto 3 decimal value:

67.514

3. Использование reduce() и lambda()

Мы можем использовать функцию reduce() вместе с функцией lambda().

Функция reduce() в основном используется для применения определенной (входной) функции к набору элементов, переданных в функцию.

Синтаксис:

reduce(function,input-list/sequence)
  • Первоначально функция reduce() применяет переданную функцию к первым двум последовательным элементам и возвращает результат.
  • Далее мы применяем ту же функцию к результату, полученному на предыдущем шаге, и к элементу, следующему за вторым элементом.
  • Этот процесс продолжается, пока не дойдет до конца списка.
  • Наконец, результат возвращается на терминал или экран в качестве вывода.

Функция lambda() используется для создания и формирования анонимных функций, то есть функции без имени или подписи.

Синтаксис:

lambda arguments:function

Пример:

from functools import reduce 

inp_lst = [12, 45, 78, 36, 45, 237.11, -1, 88]

lst_len= len(inp_lst)

lst_avg = reduce(lambda x, y: x + y, inp_lst) /lst_len 
print("Average value of the list:n") 
print(lst_avg) 
print("Average value of the list with precision upto 3 decimal value:n")
print(round(lst_avg,3))

Вывод:

Average value of the list:

67.51375
Average value of the list with precision upto 3 decimal value:

67.514

Функция operator.add() для поиска среднего значения списка

Модуль operator.add() содержит различные функции для эффективного выполнения основных вычислений и операций.

Функцию operator.add() можно использовать для вычисления суммы всех значений данных, присутствующих в списке, с помощью функции reduce().

Синтаксис:

operator.add(value1, value2)

Примечание: среднее значение = (сумма) / (длина или количество элементов)

Пример:

from functools import reduce 
import operator
inp_lst = [12, 45, 78, 36, 45, 237.11, -1, 88]

lst_len = len(inp_lst)

lst_avg = reduce(operator.add, inp_lst) /lst_len 
print("Average value of the list:n") 
print(lst_avg) 
print("Average value of the list with precision upto 3 decimal value:n")
print(round(lst_avg,3))

Вывод:

Average value of the list:

67.51375
Average value of the list with precision upto 3 decimal value:

67.514

Метод NumPy average() для вычисления среднего значения списка

Модуль NumPy имеет встроенную функцию для вычисления среднего значения элементов данных, присутствующих в наборе данных или списке.

Метод numpy.average() используется для вычисления среднего значения входного списка.

Пример:

import numpy

inp_lst = [12, 45, 78, 36, 45, 237.11, -1, 88]

lst_avg = numpy.average(inp_lst)
print("Average value of the list:n") 
print(lst_avg) 
print("Average value of the list with precision upto 3 decimal value:n")
print(round(lst_avg,3))

Вывод:

Average value of the list:

67.51375
Average value of the list with precision upto 3 decimal value:

67.514

Given a list of numbers, the task is to find the average of that list. Average is the sum of elements divided by the number of elements.

Input : [4, 5, 1, 2]
Output : 3
Explanation:
Sum of the elements is 4+5+1+2 = 12 and total number of elements is 4.
So average is 12/4 = 3

Input : [15, 9, 55]
Output : 26.33
Explanation:
Sum of the elements is 15+9+53 = 77 and total number of elements is 3.
So average is 77/3 = 26.33

Average of a List using sum() and len() in Python

In Python, we can find the average of a list by simply using the sum() and len() functions.

  • sum(): Using sum() function we can get the sum of the list.
  • len(): len() function is used to get the length or the number of elements in a list.

Python3

def Average(lst):

    return sum(lst) / len(lst)

lst = [15, 9, 55, 41, 35, 20, 62, 49]

average = Average(lst)

print("Average of the list =", round(average, 2))

Output:

Average of the list = 35.75

Time Complexity: O(n) where n is the length of the list.
Auxiliary Space: O(1) as we only require a single variable to store the average.

Average of a List using reduce() and lambda in Python

We can use the reduce() to reduce the loop and by using the lambda function can compute the summation of the list. We use len() to calculate length as discussed above. 

Python3

from functools import reduce

def Average(lst):

    return reduce(lambda a, b: a + b, lst) / len(lst)

lst = [15, 9, 55, 41, 35, 20, 62, 49]

average = Average(lst)

print("Average of the list =", round(average, 2))

Output:

Average of the list = 35.75

Time complexity: O(n), where n is the length of the list lst.
Auxiliary space: O(1). The space used is constant and independent of the size of the input list.

Average of a List using Python mean()

The inbuilt function mean() can be used to calculate the mean( average ) of the list.

Python3

from statistics import mean

def Average(lst):

    return mean(lst)

lst = [15, 9, 55, 41, 35, 20, 62, 49]

average = Average(lst)

print("Average of the list =", round(average, 2))

Output:

Average of the list = 35.75

Time complexity: O(n), where n is the length of the list.
Auxiliary space: O(1).

Average of a List by iterating List in Python

Iterating lists using for loop and doing operations on each element of the list.

Python3

def Average(lst):

    sum_of_list = 0

    for i in range(len(lst)):

        sum_of_list += lst[i]

    average = sum_of_list/len(lst)

    return average

lst = [15, 9, 55, 41, 35, 20, 62, 49]

average = Average(lst)

print("Average of the list =", round(average, 2))

Output:

Average of the list = 35.75

Time complexity: O(n) 
Auxiliary space: O(n), where n is the length of list.

Average of a List using Python numpy.average() function 

We can find the average of a list in Python by using average() function of NumPy module.

Python3

import numpy

def Average(lst):

    avg = numpy.average(lst)

    return(avg)

lst = [15, 9, 55, 41, 35, 20, 62, 49]

print("Average of the list =", round(Average(lst), 2))

Output:

Average of the list = 35.75

Last Updated :
24 Mar, 2023

Like Article

Save Article

В этом руководстве мы обсудим, как вычислить среднее значение списка в Python.

Среднее значение списка определяется как сумма элементов, присутствующих в списке, деленная на количество элементов, присутствующих в списке.

Здесь мы будем использовать три разных подхода для вычисления среднего числа элементов, представленных в списке, с помощью Python.

  1. Использование sum().
  2. Использование reduce().
  3. Использование mean().

Итак, приступим …

Использование sum()

В первом методе мы используем sum() и len() для вычисления среднего значения.

Следующая программа иллюстрирует нам это:

 
# Python program to get average of a list 
def calc_average(lst): 
 return sum(lst) / len(lst) 
lst = [24, 19, 35, 46, 75, 29, 30, 18] 
average = calc_average(lst) 
# Printing the average value of the list 
print("The average of the list is ", round(average, 3)) 

Вывод:

The average of the list is  34.5 

Объяснение:

Пришло время взглянуть на то, что мы сделали в вышеуказанной программе:

  1. На первом этапе мы создали функцию, которая принимает список в качестве параметра, а затем возвращает среднее значение с помощью sum() и len(). Мы знаем, что sum() используется для вычисления суммы элементов, а len() сообщает нам длину списка.
  2. После этого мы инициализировали список, среднее значение которого мы хотим вычислить.
  3. На следующем шаге мы передали этот список в качестве параметра нашей функции.
  4. Наконец, мы распечатали полученное значение.

В следующей программе мы увидим, как reduce() может помочь нам сделать то же самое.

Используя reduce()

Программа, представленная ниже, показывает, как это можно сделать.

 
# Python program to obtain the average of a list 
# Using reduce() and lambda 
from functools import reduce 
def calc_average(lst): 
 return reduce(lambda a, b: a + b, lst) / len(lst) 
#initializing the list 
lst = [24, 19, 35, 46, 75, 29, 30, 18] 
average = calc_average(lst) 
# Printing average of the list 
print("The Average of the list is ", round(average, 2)) 

Вывод:

The average of the list is  34.5 

Объяснение:

Давайте разберемся, что мы здесь сделали:

  1. На первом этапе мы импортировали функцию calc_average, чтобы использовать ее в нашей программе для вычисления среднего числа элементов.
  2. Теперь мы создали функцию calc_average, которая принимает список в качестве параметра и использует лямбда (точный способ написания функций в python) внутри сокращения для вычисления среднего значения.
  3. После этого мы инициализировали, чье среднее значение мы хотим вычислить.
  4. На следующем шаге мы передали этот список в качестве параметра нашей функции.
  5. Наконец, мы распечатали полученное значение.

В последней программе мы узнаем, как использовать mean() для вычисления среднего значения списка.

Использование mean()

Следующая программа показывает, как это можно сделать:

 
# Python program to obtain the average of a list 
# Using mean() 
from statistics import mean 
def calc_average(lst): 
 return mean(lst) 
lst = [24, 19, 35, 46, 75, 29, 30, 18] 
average = calc_average(lst) 
# Printing the average of the list 
print("The average of the list is ", round(average, 2)) 

Вывод:

The average of the list is  34.5 

Объяснение:

  1. На первом этапе мы импортировали среднее значение из статистики, чтобы использовать его в нашей программе для вычисления среднего значения элементов.
  2. Теперь мы создали функцию calc_average, которая принимает список в качестве параметра и использует mean() для вычисления среднего значения.
  3. После этого мы инициализировали, чье среднее значение мы хотим вычислить.
  4. На следующем шаге мы передали этот список в качестве параметра нашей функции.
  5. Наконец, мы распечатали полученное значение.

Вывод

В этом руководстве мы изучили различные методы вычисления среднего числа элементов, представленных в списке, с помощью Python.

Изучаю Python вместе с вами, читаю, собираю и записываю информацию опытных программистов.

Время чтения 4 мин.

Mean() — это встроенная статистическая функция Python, используемая для вычисления среднего значения чисел списков. Он принимает данные в качестве аргумента и возвращает среднее значение данных.

Содержание

  1. Среднее значение списка в Python
  2. Способ 1: функция Python Statistics.mean()
  3. Способ 2: использование функций sum() и len()
  4. Способ 3: использование функции numpy.mean()
  5. Метод 4: цикл For для вычисления среднего значения
  6. Дополнительные примеры
  7. Вычисление среднего значения кортежа в Python
  8. Нахождение среднего значения словаря в Python
  9. Кортеж отрицательного набора целых чисел
  10. Список отрицательного набора целых чисел
  11. Как вычислить среднее значение списка дробей
  12. TypeError в Python

Чтобы вычислить среднее значение списка в Python:

  1. Используйте функцию Statistics.mean().
  2. Используйте функции sum() и len().
  3. Функцию numpy.mean().
  4. Цикл for.

Формула для расчета среднего достигается путем вычисления суммы чисел в списке, поделенной на количество чисел в списке.

import statistics

spiList = [5.55, 5.72, 7.3, 7.75, 8.4, 9, 8.8, 8.2]

print(statistics.mean(spiList))

Выход

Среднее значение списка в Python - пример

В приведенном выше примере у нас есть восемь точек данных, и мы используем функцию Statistics.mean() для вычисления среднего значения  списка.

Способ 1: функция Python Statistics.mean()

Чтобы использовать метод mean() в Python, импортируйте модуль статистики, а затем мы можем использовать функцию mean для возврата среднего значения данного списка.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

import statistics

data = [11, 21, 11, 19, 46, 21, 19, 29, 21, 18, 3, 11, 11]

x = statistics.mean(data)

print(x)

y = statistics.median(data)

print(y)

z = statistics.mode(data)

print(z)

a = statistics.stdev(data)

print(a)

b = statistics.variance(data)

print(b)

Выход

18.53846153846154

19

11

10.611435534486562

112.6025641025641

В приведенном выше примере кода мы использовали функции среднего значения, режима, медианы, дисперсии и стандартного отклонения.

Способ 2: использование функций sum() и len()

Python sum() — это встроенная функция, которая возвращает сумму всех элементов списка. Точно так же функция len() возвращает количество элементов в списке. Мы объединим эти две встроенные функции, чтобы получить среднее значение списка.

def averageOfList(numOfList):

  avg = sum(numOfList) / len(numOfList)

  return avg

print(“The average of List is”, round(averageOfList([19, 21, 46, 11, 18]), 2))

Выход

The average of List is 23.0

Способ 3: использование функции numpy.mean()

Функция NumPy.mean() возвращает среднее значение элементов массива. Среднее значение берется по сглаженному массиву по умолчанию; в противном случае по указанной оси.

Библиотека Numpy — это широко используемая библиотека для работы с большими многомерными массивами. Он также имеет обширные математические функции для массивов для выполнения различных задач.

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

from numpy import mean

number_list = [19, 21, 46, 11, 18]

avg = mean(number_list)

print(“The average of List is “, round(avg, 2))

Выход

The average of List is 23.0

Метод 4: цикл For для вычисления среднего значения

В следующем примере кода мы инициализировали переменную sumOfNumbers значением 0 и использовали цикл for.

Цикл for будет перебирать элементы, присутствующие в списке, и каждое число добавляется и сохраняется внутри переменной sumOfNumbers.

Среднее значение рассчитывается с использованием суммы sumOfNumbers, деленной на количество чисел в списке с помощью встроенной функции len().

def averageOfList(num):

sumOfNumbers = 0

for t in num:

   sumOfNumbers = sumOfNumbers + t

   avg = sumOfNumbers / len(num)

   return avg

print(“The average of List is”, averageOfList([19, 21, 46, 11, 18]))

Выход

The average of List is 23.0

В приведенном выше коде мы используем цикл for для суммирования всех элементов, а затем делим эту сумму на несколько элементов, чтобы получить среднее значение в Python.

Дополнительные примеры

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

import statistics

data = [21, 19, 18, 46, 30]

print(statistics.mean(data))

Выход

Учебник по статистике Python

Вычисление среднего значения кортежа в Python

Чтобы найти среднее значение кортежа в Python, используйте метод Statistics.mean(), который аналогичен нахождению среднего значения списка. Мы должны передать кортеж в качестве параметра.

import statistics

tupleA =(1, 9, 2, 1, 1, 8)

print(statistics.mean(tupleA))

Выход

Вычислить среднее значение кортежа

Это будет работать так же, как список. Он просто возвращает среднее значение чисел внутри кортежа.

Нахождение среднего значения словаря в Python

Чтобы вычислить среднее значение словаря, мы можем использовать метод Statistics.mean(). В словаре функция подсчитывает только ключи как числа и возвращает среднее значение этого словаря на основе ключей словаря.

import statistics

dictA = {1: 19, 2:21, 3:18, 4:46, 5:30}

print(statistics.mean(dictA))

Выход

Вычислить среднее значение словаря

Кортеж отрицательного набора целых чисел

Мы используем statistics, чтобы найти среднее значение кортежа отрицательного метода set.mean(). Нам нужно передать отрицательный кортеж в качестве параметра функции mean(), а взамен мы получим вывод.

import statistics

data =(11, 21, 18, 19, 46)

print(statistics.mean(data))

Выход

Возьмем пример кортежа из смешанного диапазона чисел.

import statistics

data =(11, 21, 18, 19, 46)

print(statistics.mean(data))

Выход

Список отрицательного набора целых чисел

Чтобы вычислить среднее значение списка в Python, используйте метод Statistics.mean(). Мы передадим список отрицательного множества методу mean(), и на выходе мы рассчитаем среднее значение.

import statistics

data = [11, 21, 18, 19, 46]

print(statistics.mean(data))

См. следующий вывод.

Возьмем пример списка смешанного диапазона чисел.

import statistics

data = [11, 21, 18, 19, 46]

print(statistics.mean(data))

Выход

Как вычислить среднее значение списка дробей

Чтобы вычислить среднее значение списка дробей, используйте метод Statistics.mean(). Сначала нам нужно импортировать модуль статистики и дробей, а затем создать дробь чисел, и на выходе мы получим средние значения.

import statistics

from fractions import Fraction as fr

data = [fr(1, 2), fr(44, 12), fr(10, 3), fr(2, 3)]

print(statistics.mean(data))

Выход

TypeError в Python

Давайте возьмем строковые ключи в словаре Python и получим среднее значение строковых значений. Выйдет ошибка, потому что мы не можем найти среднее значение строки.

import statistics

data = {“a”: 11, “b”: 21, “c”: 19,

       “d”: 29, “e”: 18, “f”: 46}

print(statistics.mean(data))

Выход

TypeError: can‘t convert type ‘str to numerator/denominator

Добавить комментарий