How to Calculate a Running Mean in Python Using SciPy or NumPy?

Patricia Arquette
Release: 2024-11-22 19:52:16
Original
140 people have browsed it

How to Calculate a Running Mean in Python Using SciPy or NumPy?

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')
Copy after login

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')
Copy after login

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!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template