Maison >développement back-end >Tutoriel Python >Comment calculer la moyenne courante d'un tableau 1D à l'aide de la fonction « np.convolve » de NumPy ?

Comment calculer la moyenne courante d'un tableau 1D à l'aide de la fonction « np.convolve » de NumPy ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-01 06:50:10117parcourir

How to Calculate a Running Mean of a 1D Array Using NumPy's `np.convolve` Function?

Comment calculer la moyenne mobile d'un tableau 1D à l'aide de SciPy ou NumPy

La moyenne mobile, également connue sous le nom de moyenne mobile, est un mesure statistique qui calcule la moyenne d'un sous-ensemble de points de données dans une fenêtre spécifiée lorsque la fenêtre glisse sur les données. En Python, il existe plusieurs façons de calculer la moyenne cumulée à l'aide des fonctions SciPy et NumPy.

Fonction SciPy

SciPy n'a pas de fonction dédiée pour calculer la moyenne cumulée . Cependant, vous pouvez utiliser la fonction np.convolve de NumPy pour implémenter le calcul de la moyenne courante.

Fonction NumPy

La fonction np.convolve de NumPy effectue des opérations de convolution. La convolution, dans le contexte de la moyenne mobile, est le processus consistant à appliquer un noyau aux données et à additionner les résultats. Pour calculer la moyenne mobile, le noyau est une distribution uniforme, qui donne un poids égal à chaque point de données dans la fenêtre.

Pour utiliser np.convolve pour la moyenne courante, vous pouvez utiliser le code suivant :

running_mean = np.convolve(array, np.ones(window_size) / window_size, mode='valid')

où :

  • array est le tableau 1D pour lequel vous souhaitez calculer le courant Mean.
  • window_size est la taille de la fenêtre sur laquelle la moyenne est calculée.
  • mode='valid' spécifie que les bords du tableau sont ignorés, ce qui donne un tableau de sortie qui est plus court que le tableau d'entrée par window_size - 1.

Explication

Le np.ones(window_size) / window_size crée un noyau avec des poids uniformes. np.convolve applique ce noyau au tableau, ce qui donne un tableau de moyennes pour chaque fenêtre. L'argument mode='valid' garantit que les bords du tableau ne sont pas inclus dans le calcul, produisant un tableau de sortie qui reflète la moyenne glissante sur l'ensemble des données.

Gestion des bords

L'argument mode de np.convolve spécifie comment gérer les bords du tableau. Différents modes entraînent différents comportements des bords. Le tableau ci-dessous répertorie les modes couramment utilisés :

Mode Edge Handling
full Pads the array with zeros and returns an output array that is the same size as the input array.
same Pads the array with zeros to match the kernel size and returns an output array that is the same size as the input array.
valid Ignores the edges of the array, resulting in an output array that is shorter than the input array.

Le choix du mode dépend de vos besoins spécifiques et de l'interprétation que vous souhaitez pour la moyenne mobile aux bords du tableau.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn