Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mengira Sisihan Piawai Tetingkap Bergulir pada Tatasusunan 1D Menggunakan Numpy?
Menggunakan Numpy untuk Menggulingkan Sisihan Piawai Tetingkap pada Tatasusunan 1D
Dalam numpy, operasi selalunya timbul di mana seseorang perlu mengira fungsi tetingkap bergolek melalui tatasusunan 1D. Pendekatan yang mudah ialah menggunakan gelung, seperti yang ditunjukkan dalam coretan kod Python yang diberikan. Walau bagaimanapun, kaedah yang lebih cekap tersedia melalui Numpy's强大功能.
Kunci untuk melaksanakan operasi rolling window dalam Numpy terletak pada penggunaan fungsi rolling_window yang diperkenalkan dalam catatan blog. Fungsi ini membentuk semula tatasusunan input menjadi satu siri tetingkap bertindih, dengan berkesan mencipta tatasusunan 2D. Menggunakan fungsi pada tatasusunan 2D ini membolehkan pengiraan berasaskan tetingkap.
Untuk mengira sisihan piawai bergolek, hanya gunakan fungsi numpy.std pada output fungsi rolling_window. Coretan kod yang diubah suai berikut menunjukkan pendekatan ini:
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)
Coretan kod ini dengan cekap mengira sisihan piawai bergolek untuk tatasusunan 1D yang diberikan menggunakan operasi Numpy tulen, menghapuskan keperluan untuk gelung.
Atas ialah kandungan terperinci Bagaimana untuk Mengira Sisihan Piawai Tetingkap Bergulir pada Tatasusunan 1D Menggunakan Numpy?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!