Ich bin ein Wissenschaftler, der kürzlich von MATLAB zu Python konvertiert wurde. Ich suche nach Möglichkeiten, meine (hauptsächlich 2D und 3D) Datensätze zu strukturieren. Ich habe das Netz ziemlich lange durchsucht, und es scheint mir, dass die robuste Datenstrukturierung in Python noch etwas in der Luft liegt. Ich denke, diese Frage und alle Antworten werden für andere Python-Wissenschaftler von großer Relevanz sein, die nach einer Möglichkeit suchen, Daten so zu strukturieren, dass sie sich auf die vorliegenden Probleme und nicht auf die zugrunde liegende Implementierung konzentrieren können.
Ein Beispiel für die Struktur meiner Daten ist Zeit x Höhe x Parameter , wobei Parameter z. Dichte, Temperatur, etc. Für die Zeitdimension möchte ich datetime
Objekte verwenden, da dies sehr robust erscheint und eine einfache Konvertierung, Formatierung, etc. ermöglicht.
Bisher habe ich in Pandas und MetaArray (aus dem SciPy Kochbuch) gesucht.
Pandas Hauptnachteil als Datentyp ist, dass es viel mehr als nur das ist. Jede Dimension in z.B. Ein Panel (Elemente, Hauptachse, Nebenachse) scheint bestimmte bevorzugte Verwendungen zu haben, obwohl ich nicht herausfinden kann, welche. Die Indexierung ist insbesondere abhängig von der Dimension unterschiedlich, und einige Dimensionen können nach der Erstellung der Datenstruktur nicht erweitert werden. Obwohl einige Funktionen der Pandas wie Gruppierung ( .groupby
) für einen kleinen Teil meiner Arbeit wirklich nützlich sind, ist Pandas für interaktives wissenschaftliches Arbeiten nicht wirklich intuitiv, und ich suche nach anderen Optionen als meinen Tag -day Datentyp.
Ich habe auch kurz in das MetaArray aus dem SciPy-Kochbuch geschaut. Dies sieht eher wie ein sauberer Datentyp aus, und die Indizierung scheint sehr intuitiv und flexibel zu sein, wodurch sie viel besser für interaktives wissenschaftliches Arbeiten geeignet ist. Es ist jedoch nicht Bestandteil eines Pakets und muss manuell heruntergeladen und installiert werden, wodurch die Portabilität schwieriger wird, wenn ich mit anderen Wissenschaftlern zusammenarbeiten muss. Außerdem finde ich fast keine Beispiele dafür, dass es verwendet wird, und daher scheint es eher eine Ad-hoc-Lösung für das Problem der Strukturierung von N-dimensionalen Datensätzen zu sein.
Ich habe auch von Blaze gehört, das als die "nächste Generation von NumPy" bezeichnet wird, aber soweit ich sehen kann, ist es immer noch sehr früh in der Entwicklung. (Erfahrungen mit Blaze sind willkommen!)
Ich möchte daher einige Beispiele (Module, Pakete usw.) darüber, wie N-dimensionale Datensätze (insbesondere 3D) in Python strukturiert werden können, vor allem, um die interaktive Nutzung zu erleichtern.
Tags und Links python data-structures numpy dataset blaze