Chain-Datensätze aus mehreren HDF5-Dateien / Datensätzen

Die Vorteile und die vereinfachte Zuordnung, dieh5py bietet (über HDF5) die Möglichkeit, Datenbestände auf der Festplatte beizubehalten. Ich analysiere eine Reihe von Dateien und speichere das Ergebnis in einem Datensatz, einen für jede Datei. Am Ende dieses Schritts habe ich eine Reihe vonh5py.Dataset Objekte, die 2D-Arrays enthalten. Die Arrays haben alle die gleiche Anzahl von Spalten, aber unterschiedliche Anzahl von Zeilen, d. H. (A, N), (B, N), (C, N) us

Ich möchte jetzt auf diese mehreren 2D-Arrays als einzelnes 2D-Array zugreifen. Das heißt, ich möchte sie bei Bedarf als eine Reihe von Formen (A + B + C, N) lesen.

Für diesen Zweck,h5py.Link Klassen helfen nicht, da es auf der Ebene der HDF5-Knoten funktioniert.

Hier ist ein Pseudocode:

import numpy as np
import h5py
a = h5py.Dataset('a',data=np.random.random((100, 50)))
b = h5py.Dataset('b',data=np.random.random((300, 50)))
c = h5py.Dataset('c',data=np.random.random((253, 50)))

# I want to view these arrays as a single array
combined = magic_array_linker([a,b,c], axis=1)
assert combined.shape == (100+300+253, 50)

Für meine Zwecke funktionieren Vorschläge zum Kopieren der Arrays in eine neue Datei nicht. Ich bin auch offen, dies auf der Ebene der Zahlen zu lösen, aber ich finde keine geeigneten Optionen mitnumpy.view odernumpy.concatenate das würde funktionieren, ohne die Daten zu kopieren.

Kennt jemand eine Möglichkeit, mehrere Arrays als gestapelten Satz von Arrays anzuzeigen, ohne sie zu kopieren und aush5py.Dataset?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage