Implementando uma janela rolante eficiente para matrizes 1D em Numpy
O conceito de uma janela rolante envolve iterar por meio de uma sequência de dados e aplicar um cálculo para subconjuntos de dados dentro de um comprimento de janela especificado. No contexto determinado, a tarefa é calcular o desvio padrão contínuo de uma matriz 1D em Numpy sem usar loops Python.
Embora o desvio padrão possa ser facilmente obtido usando Numpy.std, a parte da janela contínua representa um desafio. No entanto, aproveitando a função 'rolling_window' apresentada na postagem do blog, podemos estender sua funcionalidade para matrizes 1D.
A função 'rolling_window' cria uma visualização da matriz de entrada reorganizada em uma série de janelas sobrepostas, facilitando a computação eficiente nessas janelas. Ao aplicar a função desejada, neste caso, Numpy.std, a cada janela, obtemos o cálculo contínuo desejado.
Para ilustrar, considere o seguinte trecho de código:
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)
Neste exemplo, 'rolling_windows' representa as janelas sobrepostas e 'rolling_stds' captura os desvios padrão contínuos calculados. Ao empregar funções Numpy para esses cálculos, alcançamos eficiência e eliminamos a necessidade de loops Python na computação.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3