NumPy | average method
Start your free 7-days trial now!
Numpy's average(~) method computes the weighted average along the specified axis.
Parameters
1. a | array-like
The input array.
2. axis | None or int or tuple of int | optional
The axis along which to compute the mean.
| Axis | Meaning | 
|---|---|
| 0 | Row-wise computation of mean | 
| 1 | Column-wise computation of mean | 
| None | All values used to compute the mean | 
3. weights | axis | optional
The array containing the weights. The dimension must be 1D with size equal to that of a, or the exact same shape as a. By default, weights=None, that is, a simple mean will be computed.
4. return | boolean | optional
Whether you want the sum of weights returned. By default return=False.
Return value
If axis in unset, then a scalar is returned. Otherwise, a Numpy array of weighted averages is returned.
Examples
Basic usage
Consider the following:
        
        
            
                
                
                    a = np.array([1,2,3])np.average(a, weights=[0,2,4])
                
            
            2.6667
        
    Here, the weighted average is:
        
        
            
                
                
                    (1*0 + 2*2 + 3*4) / (0+2+4) = 2.6667
                
            
            
        
    Getting the sum of the weighted average
To get the sum of the weighted used (i.e. 0+2+4=6), set returned=True:
        
        
            
                
                
                    np.average([1,2,3], weights=[0,2,4], returned=True)
                
            
            (2.6666666666666665, 6.0)
        
    Computing the weighted average of a 2D array
Suppose we have the following 2D array:
        
        
            
                
                
                    a = np.array([[1,2],[3,4]])a
                
            
            array([[1, 2],       [3, 4]])
        
    Weighted average of all values
Computing the weighted average of all values:
        
        
            
                
                
                    np.average(a, weights=[[5,6],[7,8]])
                
            
            2.6923076923076925
        
    Weighted average of each column
Computing the weighted average of each column, set axis=0:
        
        
            
                
                
                    np.average(a, weights=[[5,6],[7,8]], axis=0)
                
            
            array([2.16666667, 3.14285714])
        
    Weighted average of each row
Computing the weighted average of each row, set axis=1:
        
        
            
                
                
                    np.average(a, weights=[[5,6],[7,8]], axis=1)
                
            
            array([1.54545455, 3.53333333])
        
    