numpy -first in last out

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
Yogi
User
Beiträge: 80
Registriert: Montag 21. Januar 2008, 16:35
Wohnort: Bonner

Hi, ich bräuchte mal eine Auskunft.

Ich bräuchte für eine bestimmte Anzahl an 3D-Koordinaten, die ich in einem Numpy-Array ablegen möchte eine Möglichkeit eines First In, Last out.
Ziel ist es die die maximale Anzahl an Koordinaten zu begrenzen, die fortwährend einströmen. Wenn der 'Puffer' voll ist, sollen die ältesten rausfallen, während die neuen eintrudeln. Oder geht das nur über slicen? Vor allem sollte es schnell sein.

Danke!
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

`deque` aus dem als "High-performance container datatypes" beschriebenen `collections`-Modul macht meines Wissens ziemlich genau das, was du suchst.
Yogi
User
Beiträge: 80
Registriert: Montag 21. Januar 2008, 16:35
Wohnort: Bonner

Supi!

Ich habe deque mit dreidimensionalen Numpy-Arrays ausprobiert und es klappt hervorragend.

Ich habe durch deine Hilfe sogar diesen 'ring-buffer' in der Anwendung finden können, bei Python Cooking Book

Danke!
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Sehr schön.

Das Beispiel mit der `deque`-Subklasse ist interessant, danke für den Link. Ich bin allerdings gerade zu faul um aufzustehen und nachzusehen, ob das auch in meiner Ausgabe vom Python Cookbook enthalten ist ;)
burli
User
Beiträge: 1156
Registriert: Dienstag 9. März 2004, 18:22

Yogi hat geschrieben:First In, Last out.!
Eigentlich sagt man doch Last In, First out oder kurz LIFO. Auch bekannt als Stack.
BlackJack

@burli: Wenn man eine Queue haben möchte, macht es wenig Sinn einen Stack zu verwenden.
burli
User
Beiträge: 1156
Registriert: Dienstag 9. März 2004, 18:22

BlackJack hat geschrieben:@burli: Wenn man eine Queue haben möchte, macht es wenig Sinn einen Stack zu verwenden.
Das ist richtig. Ein Queue ist kein Stack. Aber ein Queue ist auch nicht LIFO sondern FIFO, also First In, First Out. Yogi hat aber nach LIFO gefragt, wenn auch verdreht
Yogi
User
Beiträge: 80
Registriert: Montag 21. Januar 2008, 16:35
Wohnort: Bonner

...gut, dass ich trotzdem verstanden worden bin :oops: :wink:
Antworten