Numpy average()
is used to calculate the weighted average along the specified axis.
np.average(arr, axis=None, weights=None)
Here arr
refers to the array whose weighted average is to be calculated.
axis
parameter is optional and is used to specify the axis along which we want to perform a weighted average. When no axis
value is passed then a weighted average of entire values is computed and a single value is returned.
weights
parameter is optional and is used to specify the weight for the values present in arr. When no value is passed for weights
parameter then the weight is considered to be one for each value. weights
parameter takes the value in the form of Numpy array or list.
import numpy as np x = np.array([32, 4, 8, 12, 20]) print('Average of arr x:', np.average(x)) y = np.array([[32, 4, 8, 12, 20], [35, 5, 15, 10, 30]]) print('Average of arr y:', np.average(y))
Output of the above program
Average of arr x: 15.2 Average of arr y: 17.1
import numpy as np x = np.array([32, 4, 8, 12, 20]) print('Average of arr x:', np.average(x, weights=[1, 2, 3, 4, 5])) y = np.array([[32, 4, 8, 12, 20], [35, 5, 15, 10, 30]]) print('Average of arr y along axis0:', np.average(y, axis=0, weights=[0, 1])) print('Average of arr y along axis1:', np.average(y, axis=1, weights=[0.2, 1.2, 0.5, 0.32, 2.5]))
Output of the above program
Average of arr x: 14.133 Average of arr y along axis0: [35. 5. 15. 10. 30.] Average of arr y along axis1: [14.627 20.911]