Averaging over every N elements of a Numpy Array
Last Updated :
23 Jul, 2025
In this article, we will learn how to find the average over every n element of a NumPy array. For doing our task, we will some inbuilt methods provided by NumPy module which are as follows:
- numpy.average() to calculate the average i.e the sum of all the numbers divided by the number of elements
- numpy.reshape() to reshape the array taking n elements at a time without changing the original data
- numpy.mean() to calculate the average as mean is nothing but the sum of elements divided by the number of elements
Example 1: Average over a 1-D array
Python3
import numpy as np
# converting list to numpy array
givenArray = np.array([6, 5, 4, 3, 2, 1, 9,
8, 7, 12, 11, 10, 15,
14, 13])
# here we took 3 as our input
n = 3
# calculates the average
avgResult = np.average(givenArray.reshape(-1, n), axis=1)
print("Given array:")
print(givenArray)
print("Averaging over every ", n, " elements of a numpy array:")
print(avgResult)
Output:
Note: N should be an integer multiple of the size of 1d array.
Example 2: Average over a 1-D array(Row-wise)
Here we have taken an array of dimensions (5,3) i.e it has 5 rows and 3 columns. Since the axis=1, it will reshape the elements in groups of n and then calculate the average row-wise using axis=1.
Python3
import numpy as np
# converting list to numpy array
givenArray = np.array([[60, 50, 40], [30, 20, 10], [90, 80,70],
[120, 110, 100], [150, 140, 130]])
# here we took 5 as our input
n = 5
# calculates the average
avgResult = np.average(givenArray.reshape(-1, n), axis=1)
print("Given array:")
print(givenArray, "\n")
print("Dimensions of given array:", givenArray.shape, "\n")
print("Averaging over every ", n, " elements of a numpy array:")
print(avgResult)
Output:
Example 3: Average over a 1-D array(Column-wise)
Remember we need to give the axis=1 only then it can group elements row-wise starting from the 0th index. Now if we change the axis value to 0, then after reshaping in groups of n, it will perform the average operation column-wise as given below which will not give us the desired result. It is best if we want to calculate the average column-wise.
Python3
import numpy as np
# converting list to numpy array
givenArray = np.array([[60, 50, 40], [30, 20, 10], [90, 80, 70],
[120, 110, 100], [150, 140, 130]])
# here we will calculate average
# over every 5 elements
n = 5
# calculates the average
avgResult = np.average(givenArray.reshape(-1, n), axis=0)
print("Given array:")
print(givenArray, "\n")
print("Dimensions of given array:", givenArray.shape, "\n")
print("Averaging over every ", n, " elements of a numpy array:")
print(avgResult)
After reshaping the 2D array it looks like below:
Then performing the average column wise we get the answer.
Output:
Example 4: Average over a 1-D array(Column-wise without reshaping)
Note here that taking axis=0 we cannot perform the average row-wise over every n element. It will just calculate the average of each column separately. The below code will calculate the average over every column element.
Python3
import numpy as np
# converting list to numpy array
givenArray = np.array([[60, 50, 40], [30, 20, 10], [90, 80,70],
[120, 110, 100], [150, 140, 130]])
# here we will calculate average over
# every 5 elements
n = 5
# calculates the average
avgResult1 = givenArray.mean(axis=0)
print("Given array:")
print(givenArray, "\n")
print("Dimensions of given array:", givenArray.shape, "\n")
print("Averaging over every ", n, " elements of a numpy array:")
print(avgResult1)
Output: