Comment puis-je calculer efficacement l'écart type glissant pour un tableau 1D dans Numpy sans boucles ?

Mary-Kate Olsen
Libérer: 2024-10-30 22:09:30
original
178 Les gens l'ont consulté

How can I efficiently calculate rolling standard deviation for a 1D array in Numpy without loops?

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>
Copier après la connexion

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!

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!