Finding the Running Mean in Python
In Python, calculating the running mean of a 1D array for a specific window can be achieved using SciPy or NumPy functions.
Using SciPy
If SciPy is available, you can use the scipy.signal.convolve function:
from scipy.signal import convolve running_mean = convolve(array, np.ones(window) / window, mode='valid')
This is preferred method, where appropriate, because generally it is efficient, has well-defined behavior, and especially because it is very general.
Using NumPy
If you only have NumPy, you can use its np.convolve function:
running_mean = np.convolve(array, np.ones(window) / window, mode='valid')
Understanding np.convolve
The core operation here is convolution. Convolution is usually expressed as a single mathematical sum over the product of portions of two signals. The interpretation in this case is that we are multiplying the window portions by the coefficients (1/window, 1/window, ..., 1/window), which are equal to the weights used in the mean formula and then we are summing over the product.
Handling Edges
The mode argument of np.convolve controls how to handle edges. 'valid' removes all edge effects by only including the part where every window fits entirely within the array, 'same' adds zeros to the edges to make the output array the same length as the input array, and 'full' adds zero-padding in order to make the output array as long as the sum of the window length and input length minus one. The choice of mode depends on your specific requirements.
The above is the detailed content of How to Calculate a Running Mean in Python Using SciPy or NumPy?. For more information, please follow other related articles on the PHP Chinese website!