Das speichern von Informationen auf Punkte im 3d-Raum

Bin ich einige code schreiben (nur zum Spaß so weit) in Python, die speichern einige Daten über jeden Punkt in einem 3d-Raum. Ich bin im Grunde nach einer 3d-matrix-Objekt, das speichert willkürliche Objekte, mit denen ich zu tun, einige erweiterte Auswahl, wie:

  • Bekommen der Punkt, wo x=1,y=2,z=3.
  • Immer alle Punkte, wo y=2.
  • Immer alle Punkte innerhalb von 3 Einheiten der position x=1,y=2,z=3.
  • Immer alle Punkte, wo Punkt.getType() == "Foo"

In allen der oben genannten, ich würde müssen, um am Ende mit irgendeiner Art von Ausgabe, würde mir die Originale position in den Raum, und die gespeicherten Daten an diesem Punkt.

Offenbar numpy kann tun was ich will, aber es scheint hoch optimiert für wissenschaftliches rechnen und arbeiten heraus, wie man die Daten möchte ich über bisher entzog sich mir.

Gibt es eine bessere alternative oder sollte ich zurück, schlug mein Kopf auf die numpy Wand? 🙂

EDIT: ein paar mehr Infos zu den ersten drei Antworten, die mir klar gemacht, ich sollte mir gehören: ich bin nicht besorgt über die Leistung, dies ist lediglich ein proof-of-concept, wo ich lieber sauberen code, um eine gute Leistung. Ich habe auch Daten für jeden Punkt in der gegebenen 3d-Raum, so dass ich denke, ein Ersatz-Matrix ist schlecht?

  • Ja, verwenden Sie einfach ein 3D-array, komplexere Strukturen sind nur für die Optimierung für einige Vorgänge in einige konkrete Fälle.
  • wenn Sie sagen, "points in space", ich nehme an, dass x,y,x sind kontinuierliche Variablen, z.B. Schwimmern, aber dein Beispiel impliziert ints. Wenn ints, eine sparse-matrix ist ok. Ansonsten benutzen Sie Tupel oder Objekte. Persönlich würde ich empfehlen den Aufstieg über den numpy Wand. Es ist grüne Weide auf der anderen Seite!
InformationsquelleAutor | 2009-05-26
Schreibe einen Kommentar