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
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.])
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!