Thanks to visit codestin.com
Credit goes to www.tutorialspoint.com

NumPy average() Function



The NumPy average() function computes the weighted average or mean of the elements in an array along a specified axis. The weighted average allows for each element to have its own weight, which can modify the contribution of each element to the final result.

In statistics, the average (also known as the mean) is the sum of the data values divided by the number of data points. The formula is mean = (sum of all elements) / (number of elements).

For a one-dimensional array, the average is computed over all elements. For multi-dimensional arrays, the average is computed along the specified axis. We can also provide a set of weights to compute the weighted average, where each elements contribution is weighted by the corresponding weight value.

Syntax

Following is the syntax of the NumPy average() function −

numpy.average(a, axis=None, weights=None, returned=False, *, keepdims=<no value>)

Parameters

Following are the parameters of the NumPy average() function −

  • a: Input array, which can be a NumPy array, list, or a scalar value.
  • axis (optional): Axis along which to compute the average. Default is None, which means the average is computed over the entire array.
  • weights (optional): An array of weights to apply to the elements. If None, all elements are treated equally. The length of the weights array must match the size of the input array.
  • keepdims (optional): If True, the reduced dimensions are retained as dimensions of size one in the output. Default is False.
  • returned (optional): If True, the function will return a tuple with the average and the sum of the weights. Default is False.

Return Values

This function returns the average of the input array. If the weights parameter is provided, the function computes the weighted average. The result is a scalar for one-dimensional input and an array for multi-dimensional input.

Example

Following is a basic example to compute the average of an array using the NumPy average() function −

import numpy as np
# input array
x = np.array([1, 2, 3, 4, 5])
# applying average
result = np.average(x)
print("Average Result:", result)

Output

Following is the output of the above code −

Average Result: 3.0

Example: Weighted Average

If all the weights along the specified axis are zero, it will result in a ZeroDivisionError, as division by zero occurs when computing the weighted average. If the weights do not have the same shape as the input array and axis=None, it will result in a ValueError. Additionally, if the weights array has dimensions or shape that are inconsistent with the input array along the specified axis, a ValueError will also be raised.

In the following example, we have computed the weighted average of an array, where each element is assigned a different weight. We have used the weights parameter of the average() function to apply custom weights −

import numpy as np
# input array and weights
x = np.array([1, 2, 3, 4, 5])
weights = np.array([0.1, 0.2, 0.3, 0.2, 0.2])
# applying weighted average
result = np.average(x, weights=weights)
print("Weighted Average Result:", result)

Output

Following is the output of the above code −

Weighted Average Result: 3.2

Example: Specifying an Axis

The average() function can compute the average along a specific axis of a multi-dimensional array. In the following example, we have computed the average along axis 0 (columns) and axis 1 (rows) of a 2D array −

import numpy as np
# 2D array
x = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# applying average along axis 0 (columns)
result_axis0 = np.average(x, axis=0)
# applying average along axis 1 (rows)
result_axis1 = np.average(x, axis=1)
print("Average along axis 0:", result_axis0)
print("Average along axis 1:", result_axis1)

Output

Following is the output of the above code −

Average along axis 0: [4. 5. 6.]
Average along axis 1: [2. 5. 8.]

Example: Usage of 'returned' Parameter

The returned parameter allows the function to return both the average and the sum of the weights. In the following example, we compute the weighted average and return both values.

import numpy as np
# input array and weights
x = np.array([1, 2, 3, 4, 5])
weights = np.array([0.1, 0.2, 0.3, 0.2, 0.2])
# applying weighted average with returned=True
result, sum_weights = np.average(x, weights=weights, returned=True)
print("Weighted Average:", result)
print("Sum of Weights:", sum_weights)

Output

Following is the output of the above code −

Weighted Average: 3.2
Sum of Weights: 1.0

Example: Plotting 'average()' Function

In the following example, we have plotted the behavior of the average() function. We have calculated and plotted the average for different sizes of input arrays by importing Numpy and matplotlib.pyplot module −

import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 10, 100)
y = np.full_like(x, np.average(x))
plt.plot(x, y, label="Average")
plt.title("Average Function")
plt.xlabel("Input")
plt.ylabel("Average Value")
plt.legend()
plt.grid()
plt.show()

Output

The plot demonstrates the constant nature of the average value across the input range −

Average Visualization
numpy_statistical_functions.htm
Advertisements