Sie haben den Datensatz herunterladen Tests wie diese auf sie auszuführen.
eine Testdatei hängt die ich unter Verwendung der Umgebung:
In [318]: f = h5py.File('data.h5')
In [319]: list(f.keys())
Out[319]: ['dset', 'dset1', 'vset']
In [320]: f['dset']
Out[320]: <HDF5 dataset "dset": shape (3, 5), type "<f8">
Ich kann Index und ein einzelnes Element testen, oder Scheibe des Datensatz
In [321]: f['dset'][1]
Out[321]: array([ 1., 1., 1., 1., 1.])
In [322]: f['dset'].shape
Out[322]: (3, 5)
In [323]: f['dset'][...]
Out[323]:
array([[ 1., 1., 1., 1., 1.],
[ 1., 1., 1., 1., 1.],
[ 1., 1., 1., 1., 1.]])
Aber ein boolean-Test auf dem Datensatz nicht Arbeit:
In [324]: f['dset']>0
...
TypeError: unorderable types: Dataset() > int()
==1
funktioniert, aber die Daten-Set-Objekte mit 1 vergleicht, und unweigerlich zurückkehren s False
. Deshalb where
Sie ein leeres Resultat ergibt:
In [325]: f['dset']==1
Out[325]: False
das Element für Element Test tun ich den Datensatz 'index' haben:
In [326]: f['dset'][...]>0
Out[326]:
array([[ True, True, True, True, True],
[ True, True, True, True, True],
[ True, True, True, True, True]], dtype=bool)
ich es gelöst, indem es auf sich ändernde: 'data = hf ['Daten'] [::] '. Danke :) Ich muss ein paar Minuten warten, bevor ich deine Antwort annehmen kann. – matchifang
Ich glaube, dass Sie auch 'np.array' auf dem HDF5-Datenmengenobjekt aufrufen können, um ein numpiges Array zu erstellen. – Praveen
Ich würde 'f ['dset']. Value' über' np.array (f ['dset']) 'empfehlen. In jedem Fall müssen wir uns bewusst sein, dass es einen Unterschied zwischen dem "Datensatz" und dem Array im Speicher gibt. – hpaulj