Mittelwert über letzte 10 Werte einer Endlosschleife

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
julian
User
Beiträge: 5
Registriert: Donnerstag 5. Juni 2014, 09:16

Hallo zusammen,

ich habe ein kleines Problem und hoffe es kann mir jemand helfen. :)

Und zwar habe ich eine Funktion in einer Endlosschleife laufen und möchte gerne die jeweils letzten zehn Werte mitteln.
Um Speicherplatz zu sparen würde ich gerne eine Liste mit fester Länge definieren, so dass beim

Code: Alles auswählen

list.append(NeuesterWert)
der älteste automatisch gelöscht wird.

Geht das? Und wenn ja, wie? ;) Oder gibt es vielleicht eine bessere Methode? Google hat mir zum running average und ähnlichen Suchbegriffen nicht wirklich geholfen.

Vielen Dank schon mal im voraus!! :)
Julian
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Nutze ``collections.deque``. Das kannst Du mit einer maximalen Länge konfigurieren:

Code: Alles auswählen

from collections import deque

d = deque(range(11), 10)
print(d)
> deque([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], maxlen=10)

d.appendleft(42)
print(d)
> deque([42, 1, 2, 3, 4, 5, 6, 7, 8, 9], maxlen=10)
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
julian
User
Beiträge: 5
Registriert: Donnerstag 5. Juni 2014, 09:16

Vielen Dank, Deque war des Rätsels Lösung und funktioniert zusammen mit der

Code: Alles auswählen

numpy.mean(d)
Funktion hervorragend. :D
Antworten