Seite 1 von 1

Mittelwert über letzte 10 Werte einer Endlosschleife

Verfasst: Dienstag 8. Juli 2014, 09:11
von julian
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

Re: Mittelwert über letzte 10 Werte einer Endlosschleife

Verfasst: Dienstag 8. Juli 2014, 09:17
von Hyperion
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)

Re: Mittelwert über letzte 10 Werte einer Endlosschleife

Verfasst: Dienstag 8. Juli 2014, 11:47
von julian
Vielen Dank, Deque war des Rätsels Lösung und funktioniert zusammen mit der

Code: Alles auswählen

numpy.mean(d)
Funktion hervorragend. :D