Maison >développement back-end >Tutoriel Python >Pourquoi NumPy n'a-t-il pas de fonction de moyenne mobile intégrée ?

Pourquoi NumPy n'a-t-il pas de fonction de moyenne mobile intégrée ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-26 14:29:13890parcourir

Why Doesn't NumPy Have a Built-in Moving Average Function?

Calcul simplifié de la moyenne mobile avec Python et NumPy

Le calcul de la moyenne mobile ou moyenne mobile d'une série de données est essentiel pour lisser le bruit et identifier les tendances. Bien que NumPy/SciPy ne dispose pas d'une fonction de moyenne mobile dédiée, sa mise en œuvre manuelle est étonnamment simple.

Implémentation la plus simple avec NumPy

Utilisation de la fonction cumsum de NumPy, une méthode simple non pondérée la moyenne mobile peut être mise en œuvre efficacement :

def moving_average(a, n=3):
    ret = np.cumsum(a, dtype=float)
    ret[n:] = ret[n:] - ret[:-n]
    return ret[n - 1:] / n

Cette mise en œuvre fournit une analyse rapide et précise moyen de calculer la moyenne mobile pour n'importe quelle taille de fenêtre souhaitée.

Inclusion dans les batteries par rapport à la mise en œuvre

L'absence d'une fonction de moyenne mobile intégrée dans NumPy/SciPy peut semble étrange, compte tenu de son omniprésence. Cependant, il existe quelques raisons potentielles à cela :

  • Simplicité de mise en œuvre : comme démontré ci-dessus, la moyenne mobile peut être facilement implémentée à l'aide des fonctions NumPy standard.
  • Efficacité de calcul : la La méthode Cumsum est souvent plus rapide que les approches plus complexes basées sur la FFT.
  • Globation potentielle : l'inclusion de fonctions spécialisées pour chaque tâche d'analyse de données imaginable pourrait conduire à un gonflement des bibliothèques NumPy/SciPy.

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