ich normalerweise h5py
verwenden, um die HDF5 Sachen in Python zu tun, und wenn ich einen Datensatz erstellt werden soll, die ich später oder erweitern wollen, ich mache:in HDF5 Erweiterung Array PyTables
f = h5py.File('foo.h5', 'w')
d = f.create_dataset('whatever', (5, 5), maxshape=(None, 5), dtype='i8', chunks=True)
...
d.resize((23, 5))
...
Die maxshape(None, ...)
setzt die erste Dimension zu "Unendlichkeit", so dass es erweiterbar ist.
Jetzt habe ich ein Projekt, wo ich bei PyTables bleiben muss und wollte große Arrays Schritt für Schritt aufbauen. Gibt es eine Möglichkeit, arrays
in PyTables zu erweitern? Diese
ist in etwa die Idee:
import tables as tb
import numpy as np
filename = "foo.h5"
h5file = tb.File(filename, "a")
gbar = h5file.create_group(h5file.root, "bar", "Pressure")
h5file.create_array(gbar, 'left', np.array((1, 2, 3, 4)), "...")
# now extend the shape of (4,) and append more arrays iteratively???
h5file.close()