Heim > Backend-Entwicklung > Python-Tutorial > Wie erstellt man effizient einen Rolling-Window-Iterator in Python?

Wie erstellt man effizient einen Rolling-Window-Iterator in Python?

Susan Sarandon
Freigeben: 2024-12-26 11:49:09
Original
226 Leute haben es durchsucht

How to Efficiently Create a Rolling Window Iterator in Python?

Rollende Fenster-Iteratoren: Eine Python-Implementierung

Das Iterieren über Daten in einem rollenden Fenster (oder Schiebefenster) erweist sich bei verschiedenen Daten als äußerst nützlich Analyse- und maschinelle Lernanwendungen. Diese Frage stellt eine Technik zum Erstellen eines Rolling-Window-Iterators für eine bestimmte Sequenz oder einen Iterator in Python vor.

Die bereitgestellte primäre Python-Implementierung lautet wie folgt:

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
Nach dem Login kopieren

Dieser Ansatz iteriert durch die Sequenz , Erstellen des ersten Fensters und anschließendes Aktualisieren des Fensters in nachfolgenden Iterationen. Einige Python-Enthusiasten schlagen jedoch alternative Methoden für mehr Eleganz und Effizienz vor.

Ein solcher Vorschlag beinhaltet die Verwendung des itertools-Moduls:

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
Nach dem Login kopieren

Diese Methode nutzt das leistungsstarke itertools-Modul, um das rollierende Fenster zu implementieren Funktionalität prägnant.

Eine weitere Alternative, die sich besonders für Listen oder Tupel eignet, verwendet eine einfache Ansatz:

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])
Nach dem Login kopieren

Abhängig von den spezifischen Anforderungen und Leistungsüberlegungen können diese alternativen Implementierungen Flexibilität bei der Implementierung von Rolling-Window-Iteratoren für verschiedene Anwendungen bieten.

Das obige ist der detaillierte Inhalt vonWie erstellt man effizient einen Rolling-Window-Iterator in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage