Maison > Article > développement back-end > Comment puis-je calculer efficacement l'écart type glissant pour un tableau 1D dans Numpy sans boucles ?
Implémentation d'une fenêtre glissante efficace pour les tableaux 1D dans Numpy
Le concept de fenêtre glissante implique de parcourir une séquence de données et d'appliquer un calcul à des sous-ensembles de données dans une longueur de fenêtre spécifiée. Dans le contexte donné, la tâche consiste à calculer l'écart type glissant d'un tableau 1D dans Numpy sans utiliser de boucles Python.
Bien que l'écart type puisse être facilement obtenu à l'aide de Numpy.std, la partie fenêtre glissante pose un défi. Cependant, en tirant parti de la fonction 'rolling_window' présentée dans l'article de blog, nous pouvons étendre ses fonctionnalités aux tableaux 1D.
La fonction 'rolling_window' crée une vue du tableau d'entrée réorganisé en une série de fenêtres qui se chevauchent, faciliter un calcul efficace sur ces fenêtres. En appliquant la fonction souhaitée, en l'occurrence Numpy.std, à chaque fenêtre, nous obtenons le calcul glissant souhaité.
Pour illustrer, considérons l'extrait de code suivant :
<code class="python">import numpy as np # Create a 1D array observations = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) # Specify window length window_length = 3 # Calculate rolling windows rolling_windows = rolling_window(observations, window_length) # Calculate rolling standard deviations rolling_stds = np.std(rolling_windows, axis=1) # Print the results print("Rolling standard deviations:", rolling_stds)</code>
Dans Dans cet exemple, « rolling_windows » représente les fenêtres qui se chevauchent et « rolling_stds » capture les écarts-types glissants calculés. En utilisant les fonctions Numpy pour ces calculs, nous obtenons de l'efficacité et éliminons le besoin de boucles Python dans le calcul.
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!