Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mencipta Iterator Tetingkap Bergulir dengan Cekap dalam 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
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
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])
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!