롤링 윈도우 반복자: Python 구현
롤링 윈도우(또는 슬라이딩 윈도우) 방식으로 데이터를 반복하는 것은 다양한 데이터에서 매우 유용합니다. 분석 및 기계 학습 애플리케이션. 이 질문은 Python에서 특정 시퀀스 또는 반복기에 대한 롤링 창 반복기를 생성하는 기술을 보여줍니다.
제공된 기본 Python 구현은 다음과 같습니다.
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
이 접근 방식은 시퀀스를 반복합니다. , 초기 창을 생성한 후 후속 반복에서 창을 업데이트합니다. 그러나 일부 Python 애호가들은 더 나은 우아함과 효율성을 위한 대체 방법을 제안합니다.
이러한 제안 중 하나는 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
이 방법은 강력한 itertools 모듈을 활용하여 롤링 창을 구현합니다. 기능을 간결하게 설명합니다.
특히 목록이나 튜플에 적합한 또 다른 대안은 간단한 방법을 사용합니다. 접근 방식:
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])
특정 요구 사항 및 성능 고려 사항에 따라 이러한 대체 구현은 다양한 애플리케이션에 대한 롤링 창 반복기를 구현하는 데 유연성을 제공할 수 있습니다.
위 내용은 Python에서 롤링 창 반복자를 효율적으로 만드는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!