Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengira Sisihan Piawai Tetingkap Bergulir pada Tatasusunan 1D Menggunakan Numpy?

Bagaimana untuk Mengira Sisihan Piawai Tetingkap Bergulir pada Tatasusunan 1D Menggunakan Numpy?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-28 03:23:30284semak imbas

How to Calculate Rolling Window Standard Deviations on 1D Arrays Using 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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn