Maison > développement back-end > Tutoriel Python > Comment implémenter des moyennes mobiles en Python sans fonction dédiée ?

Comment implémenter des moyennes mobiles en Python sans fonction dédiée ?

Linda Hamilton
Libérer: 2024-11-19 21:13:03
original
711 Les gens l'ont consulté

How to Implement Moving Averages in Python without a Dedicated Function?

Implémentation de moyennes mobiles avec Python

Malgré l'absence de fonction dédiée au calcul des moyennes mobiles dans NumPy ou SciPy, il existe une méthode simple et moyen efficace de l’implémenter à l’aide de la fonction np.cumsum. Cette approche est particulièrement efficace pour les moyennes mobiles non pondérées.

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

Ce code prend un tableau a et une taille de fenêtre n pour calculer la moyenne mobile. Il utilise np.cumsum pour calculer la somme cumulée du tableau, puis soustrait la somme des n éléments précédents pour ajuster la fenêtre mobile. Le tableau résultant est ensuite divisé par n pour obtenir la moyenne.

Par exemple, le code suivant calcule la moyenne mobile d'un tableau :

a = np.arange(20)
moving_average(a)
# array([  1.,   2.,   3.,   4.,   5.,   6.,   7.,   8.,   9.,  10.,  11.,
#         12.,  13.,  14.,  15.,  16.,  17.,  18.])
Copier après la connexion

Il convient de noter que la mise en œuvre de moyennes mobiles est relativement simple dans NumPy, et l'inclusion d'une telle fonctionnalité dans la bibliothèque peut ne pas être nécessaire, car cela pourrait entraîner une surcharge et réduire la concentration de la bibliothèque sur ses fonctionnalités de base.

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