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