Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Mencipta Iterator Tetingkap Bergulir dengan Cekap dalam Python?

Bagaimana untuk Mencipta Iterator Tetingkap Bergulir dengan Cekap dalam Python?

Susan Sarandon
Lepaskan: 2024-12-26 11:49:09
asal
227 orang telah melayarinya

How to Efficiently Create a Rolling Window Iterator in Python?

Iterators Tetingkap Berguling: Pelaksanaan Python

Membalas data dalam fesyen tetingkap gulung (atau tetingkap gelongsor) terbukti sangat berguna dalam pelbagai data analisis dan aplikasi pembelajaran mesin. Soalan ini mempamerkan teknik untuk mencipta lelaran tetingkap bergulir untuk jujukan atau lelaran tertentu dalam Python.

Pelaksanaan Python utama yang disediakan adalah seperti berikut:

def rolling_window(seq, window_size):
    it = iter(seq)
    win = [it.next() for _ in range(window_size)]
    yield win
    for e in it:
        win = win[1:] + (e,)
        yield win
Salin selepas log masuk

Pendekatan ini berulang melalui jujukan , mencipta tetingkap awal, dan kemudian mengemas kini tetingkap dalam lelaran berikutnya. Walau bagaimanapun, sesetengah peminat Python mencadangkan kaedah alternatif untuk keanggunan dan kecekapan yang lebih besar.

Salah satu cadangan sedemikian melibatkan penggunaan modul itertools:

from itertools import islice

def window(seq, n=2):
    it = iter(seq)
    result = tuple(islice(it, n))
    if len(result) == n:
        yield result
    for elem in it:
        result = result[1:] + (elem,)
        yield result
Salin selepas log masuk

Kaedah ini memanfaatkan modul itertools yang berkuasa untuk melaksanakan tetingkap rolling kefungsian secara ringkas.

Alternatif lain, terutamanya sesuai untuk senarai atau tupel, menggunakan pendekatan yang mudah:

seq = [0, 1, 2, 3, 4, 5]
window_size = 3

for i in range(len(seq) - window_size + 1):
    print(seq[i: i + window_size])
Salin selepas log masuk

Bergantung pada keperluan khusus dan pertimbangan prestasi, pelaksanaan alternatif ini boleh memberikan fleksibiliti dalam melaksanakan pengulangan tetingkap bergulir untuk pelbagai aplikasi.

Atas ialah kandungan terperinci Bagaimana untuk Mencipta Iterator Tetingkap Bergulir dengan Cekap dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan