In this article, we will see the program for creating an array of elements in which every element is the average of every consecutive subarrays of size k of a given numpy array of size n such that k is a factor of n i.e. (n%k==0). This task can be done by using numpy.mean() and numpy.reshape() functions together.
Syntax: numpy.mean(arr, axis = None)
Return: Arithmetic mean of the array (a scalar value if axis is none) or array with mean values along specified axis.
Syntax: numpy_array.reshape(shape)
Return: It returns numpy.ndarray
Example :
Arr = [1,2,3,4,5,6 7,8,9,10,11 12,13,14,15,16] and K = 2 then Output is [ 1.5, 3.5, 5.5, 7.5, 9.5, 11.5, 13.5, 15.5]. Here, subarray of size k and there average are calculated as : [1 2] avg = ( 1 + 2 ) / 2 = 1.5 [3 4] avg = ( 3 + 4 ) / 2 = 3.5 [5 6] avg = ( 5 + 6 ) / 2 = 5.5 [7 8] avg = ( 7 + 8 ) / 2 = 7.5 [9 10] avg = ( 9 + 10 ) / 2 = 9.5 [11 12] avg = ( 11 + 12 ) / 2 = 11.5 [13 14] avg = ( 13 + 14 ) / 2 = 13.5 [15 16] avg = ( 15 + 16 ) / 2 = 15.5
Below is the implementation:
Python3
# importing library import numpy # create numpy array arr = numpy.array([ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 , 16 ]) # view array print ( "Given Array:\n" , arr) # declare k k = 2 # find the mean output = numpy.mean(arr.reshape( - 1 , k), axis = 1 ) # view output print ( "Output Array:\n" , output) |
Output:
Given Array: [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16] Output Array: [ 1.5 3.5 5.5 7.5 9.5 11.5 13.5 15.5]