Comment calculer efficacement une moyenne mobile en Python avec NumPy ?

Susan Sarandon
Libérer: 2024-11-16 08:16:03
original
137 Les gens l'ont consulté

How to Efficiently Calculate a Rolling Average in Python with NumPy?

Calcul de la moyenne mobile / mobile en Python avec NumPy / SciPy

Malgré les fonctionnalités étendues de NumPy et SciPy, le calcul d'une moyenne mobile peut être une tâche étonnamment complexe. Cet article aborde le problème en fournissant une solution facile à mettre en œuvre à l'aide de np.cumsum de NumPy.

Le moyen le plus simple d'implémenter la moyenne mobile avec NumPy

Pour un simple non -moyenne mobile pondérée, np.cumsum fournit une solution efficace :

def moving_average(a, n=3):
    ret = np.cumsum(a, dtype=float)
    ret[n:] = ret[n:] - ret[:-n]
    return ret[n - 1:] / n
Copier après la connexion

Performance et simplicité

Cette méthode offre des performances élevées car elle exploite le np.cumsum optimisé de NumPy fonction, surpassant les méthodes basées sur la FFT dans certains cas. De plus, il évite les erreurs potentielles associées aux algorithmes complexes, ce qui le rend très fiable.

Rationnelle pour l'exclusion de la fonctionnalité de moyenne mobile dans NumPy

Malgré son utilité apparente, il peut y avoir raisons valables pour exclure la fonctionnalité de moyenne mobile du noyau NumPy :

  • La simplicité par rapport à la fonctionnalité : NumPy s'efforce de conserver un noyau simple et compact, évitant ainsi l'encombrement inutile des fonctions spécialisées.
  • Disponibilité des solutions implémentées par l'utilisateur : Comme démontré ci-dessus, la mise en œuvre d'une moyenne mobile avec NumPy est simple, ce qui rend inutile la duplication des fonctionnalités dans la bibliothèque.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal