You can use the **np.mean()** or **np.average()** functions to calculate the average value of an array in Python.

Here is the subtle difference between the two functions:

**np.mean**always calculates the arithmetic mean.**np.average**has an optional**weights**parameter that can be used to calculate a weighted average.

The following examples show how to use each function in practice.

**Example 1: Use np.mean() and np.average() without Weights**

Suppose we have the following array in Python that contains seven values:

#create array of values data = [1, 4, 5, 7, 8, 8, 10]

We can use **np.mean()** and **np.average()** to calculate the average value of this array:

import numpy as np #calculate average value of array np.mean(data) 6.142857142857143 #calcualte average value of array np.average(data) 6.142857142857143

Both functions return the exact same value.

Both functions used the following formula to calculate the average:

Average = (1 + 4 + 5 + 7 + 8 + 8 + 10) / 7 = **6.142857**…

**Example 2: Use np.average() with Weights**

Once again suppose we have the following array in Python that contains seven values:

#create array of values data = [1, 4, 5, 7, 8, 8, 10]

We can use **np.average()** to calculate a weighted average for this array by supplying a list of values to the **weights** parameters:

import numpy as np #calculate weighted average of array np.average(data, weights=(.1, .2, .4, .05, .05, .1, .1)) 5.45

The weighted average turns out to be **5.45**.

Here is the formula that **np.average()** used to calculate this value:

Weighted Average = 1*.1 + 4*.2 + 5*.4 + 7*.05 + 8*.05 + 8*.1 + 10*.1 = **5.45**.

Note that we could not use **np.mean()** to perform this calculation since that function doesn’t have a **weights** parameter.

Refer to the NumPy documentation for a complete explanation of the np.mean() and np.average() functions.

**Additional Resources**

The following tutorials explain how to calculate other average values in Python:

How to Calculate Moving Averages in Python

How to Calculate a Cumulative Average in Python