Seite 1 von 1
numpy -first in last out
Verfasst: Freitag 21. November 2008, 12:54
von Yogi
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!
Verfasst: Freitag 21. November 2008, 14:50
von Y0Gi
`deque` aus dem als "High-performance container datatypes" beschriebenen `collections`-Modul macht meines Wissens ziemlich genau das, was du suchst.
Verfasst: Freitag 21. November 2008, 23:53
von Yogi
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!
Verfasst: Montag 24. November 2008, 11:23
von Y0Gi
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

Re: numpy -first in last out
Verfasst: Montag 24. November 2008, 11:45
von burli
Yogi hat geschrieben:First In, Last out.!
Eigentlich sagt man doch Last In, First out oder kurz LIFO. Auch bekannt als Stack.
Verfasst: Montag 24. November 2008, 12:29
von BlackJack
@burli: Wenn man eine Queue haben möchte, macht es wenig Sinn einen Stack zu verwenden.
Verfasst: Montag 24. November 2008, 12:56
von burli
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
Verfasst: Montag 24. November 2008, 13:14
von Yogi
...gut, dass ich trotzdem verstanden worden bin
