How to Find Average of the List in Python

In previous articles, we studied about 2d lists in python, how to concatenate multiple lists, how to shuffle lists, how to reverse a list, and so much more. In this article, we will know how to find the average list in python.

The average is the number that represents the central tendency in a group of numbers. For example, if we have some numbers like – 3 4 5 6 7. The average number is the sum of all the numbers divided by the total number of numbers.

3+4+5+6+7=25
25/5=5.

So, 5 is the average of these numbers.

In Python, we have multiple ways to find the average number of elements in the list. We can use built-in functions as well as create our own functions. So, let us learn each method one by one.

Finding the Average of lists in Python using Loop

list1=[1,2,3,4,5,6]
sum1=0
avg=0
n=len(list1)
for i in list1:
   #calculating the sum of elements in the list
   sum1+=i
#Average= sum1/length of list
avg=sum1/n
print("average of list1:",list1," is:",avg)
Output-
average of list1: [1, 2, 3, 4, 5, 6] is: 3.5
python average of list

We can also use the sum() method directly-

list1=[1,2,3,4,5,6]
Avg=sum(list1)/len(list1)
print(Avg)
Output-
3.5

Finding the average of lists in Python using the Numpy Library

For using the numpy library, we need to install it using pip install numpy

#Importing numpy library and giving it alias(nickname)-np
import numpy as np
list1=[100,
       7127,
       1812813,
       27832728,
       128718718,
       812891,
       2123,
       133,
       123,
       1323231,
       13131313]
#Using mean function of numpy for calculating the average of #the list
mean=np.mean(list1)
print("average:",mean)
Output-
average: 15785572.727272727

Using Statistics Library to Find the average of lists in Python

#We can import the statistics library for finding the #average/mean of the list.
import statistics
de average 6.5 f average(list1):
mean=statistics.mean(list1)
return mean
list1=[1,2,3,4,5,6,7,8,9,10,11,12]
avg=average(list1)
print("average",avg)
Output-
average 6.5

Using the reduce function to find the average of lists in Python

We can also find the mean or average of the list using the reduce() function of the functools library. In the reduce function, we need to pass two parameters. The first is the function we want to perform on the two elements, and the second is the list of items. The reduce function will automatically take two elements from the list. If we have a small function, passing a lambda function as the first parameter is a good practice.

Finding Average of List without Python Lambda Function

from functools import reduce
def sum1(a,b):
   return (a+b)
list1 = [12,345,21,54,11]
print(reduce(sum1,list1)/len(list1))
Output-
88.6

Another way is by using the add function of the operator module –

import operator
list1 = [12,345,21,54,11]
print("average:", reduce (operator.add, list1)/len (list1))

Finding the Average of the list With the Python Lambda Function

from functools import reduce
def average(list1):
   sum1=0
   sum1+=reduce(lambda a, b: a + b, list1)
   avg=sum1/ len(list1)
   return avg
list1 = [12,345,21,54,11]
print("average",average(list1) )
Output-
average: 88.6

Finding the average of the list in Python containing strings

Suppose we have a list containing numbers but in the form of strings, like this-
list_strings = [“1″,”2″,”3″,”4″,”5″,”6″,”7”]
We want to calculate the average of this string, but none of the methods we discussed can be used to calculate the average. We have to convert this list into integer type and then calculate the average of the list after any of the methods discussed.

For example-

import numpy as np
def string_list_average(list_strings):
   for i in range(len(list_strings)):
      # Converting each element of list into int one by one
      list_strings[i]=int(list_strings[i])
   return list_strings

if name=="main":
   list_strings = ["1","2","3","4","5","6","7"]
   list1=string_list_average(list_strings)  
   mean=np.mean(list1)
   print("average:",mean)
Output-
average: 4.0

A better way to convert the list of strings into an integer is by using the map function-

import statistics
def convert_string_to_int(list_strings):
   # Mapping each element of list as int
   int_list=list(map(int,list_strings))
   return int_list
if name=="main":
   list_strings = ["11","21","13","41","51","16","17"]
   int_list=convert_string_to_int(list_strings)
   mean=statistics.mean(int_list)
   print("average:",mean)
Output-
average: 24.285714285714285

Note- We cannot find the average if the elements are like this – one, two, three, four.

Calculating The Average of Data Frame in Python

import pandas as pd
df=pd.DataFrame()
list1=[1,2,3,4,5,6,7]
list2=[11,21,31,141,151,161,17]
df["column1"]=list1
df["column2"]=list2
print(df.mean())
Output-
column1 4.000000
column2 76.142857
dtype: float64

Must Read

Conclusion

We have studied many methods to find the average of the list in Python. Python offers a variety of built-in functions like statistics.mean() and numpy.mean(). We can also find the average of a list containing numbers as a string.

Try to run the programs on your side, and let us know if you have any queries.

Happy Coding!

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments