Comment calculer les écarts types de fenêtre glissante sur des tableaux 1D à l'aide de Numpy ?

Mary-Kate Olsen
Libérer: 2024-10-28 03:23:30
original
292 Les gens l'ont consulté

How to Calculate Rolling Window Standard Deviations on 1D Arrays Using Numpy?

Utilisation de Numpy pour les écarts types de fenêtre glissante sur des tableaux 1D

Dans numpy, une opération survient souvent lorsqu'il faut calculer une fonction de fenêtre glissante sur un tableau 1D. Une approche simple consisterait à utiliser une boucle, comme indiqué dans l'extrait de code Python donné. Cependant, une méthode plus efficace est disponible via Numpy's强大功能.

La clé pour effectuer une opération de fenêtre déroulante dans Numpy réside dans l'utilisation de la fonction Rolling_window introduite dans un article de blog. Cette fonction remodèle le tableau d'entrée en une série de fenêtres qui se chevauchent, créant ainsi un tableau 2D. L'application d'une fonction à ce tableau 2D permet d'effectuer des calculs basés sur des fenêtres.

Pour calculer les écarts types glissants, appliquez simplement la fonction numpy.std à la sortie de la fonction Rolling_window. L'extrait de code modifié suivant illustre cette approche :

import numpy as np

# Define the rolling window function
def rolling_window(a, window):
    shape = a.shape[:-1] + (a.shape[-1] - window + 1, window)
    strides = a.strides + (a.strides[-1],)
    return np.lib.stride_tricks.as_strided(a, shape=shape, strides=strides)

# Input array
observations = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# Calculate rolling standard deviations
stdev = np.std(rolling_window(observations, 3), 1)

# Print the results
print(stdev)
Copier après la connexion

Cet extrait de code calcule efficacement les écarts types glissants pour le tableau 1D donné à l'aide d'opérations Numpy pures, éliminant ainsi le besoin de boucles.

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!