Wie fülle ich ein n-dimensionales Array in HDF5 aus einer 1D-Quelle?
Frage
Ich habe ein Array mit mehreren Abmessungen (x, y, Kanäle, z, Zeitschritte). Die Rohdaten werden jedoch in einem TIFF-Bild als einzelner Stapel von (x, y, Kanälen) mit Z * Time-Trecrat-Frames gespeichert.
Schließlich gibt das Image.getData () -Funktion von der Pillow ein 1D-Array-ähnliches Objekt zurück, das neu formuliert werden muss.
Was ist der beste Weg, um dies in HDF5 zu lesen, wenn der Datensatz zu groß ist, um in den Speicher zu passen? Ist es möglich, das Array erneut umzusetzen, sobald er in HDF5 geschrieben wurde, oder um 1D-Daten auf eine Weise zu schreiben, dass sie automatisch ein Array füllt (dh schreibt, mit x variierenden schnellsten, y zweitschnellsten usw.)
Hier ist, was ich bisher versucht habe (IMG ist Pil.Image, dset ist ein H5py-Datensatz):
generasacodicetagpre. generasacodicetagpre.Lösung
Option 1 war die richtige Antwort.Es macht jedoch einen großen Unterschied, welcher Maß am schnellsten variiert:
Um diese Daten schnell zu lesen, sollte der schnellste variierende Index nicht zuerst sein.