Ich habe eine bestehende hdf5-Datei mit drei Arrays, ich möchte eines der Arrays mit h5py extrahieren.Wie exportiert man HDF5-Datei mit H5PY zu NumPy?
16
A
Antwort
34
h5py
bereits liest Dateien in als numpy Arrays, so dass nur:
with h5py.File('the_filename', 'r') as f:
my_array = f['array_name'][()]
Die [()]
bedeutet das gesamte Array zu lesen, in; Wenn Sie das nicht tun, liest es nicht die ganzen Daten, sondern gibt Ihnen einen faulen Zugang zu Unterteilen (sehr nützlich, wenn das Array riesig ist, aber Sie nur einen kleinen Teil davon benötigen).
0
Für diese Frage ist es viel zu viel Aufwand, aber wenn Sie eine Menge Dinge wie dieses zu tun haben, verwende ich ein Paket SpacePy, das einige davon einfacher macht.
datamodel.fromHDF5() Dokumentation Dies gibt ein Wörterbuch von Arrays zurück, die auf ähnliche Weise wie h5py mit Daten verarbeitet werden.
Vielen Dank Dougal.Ich habe den Code geändert: >>> f = h5py.File ('D: /! JODI/Macao Wind/u_100m/20100101.hdf5', 'r') my_array = f [ 'u']. Wert f.close() Eine weitere dumme Frage ist die Out-Putarray ist in einer Datei? Wo finde ich das Ausgangsarray? Vielen Dank –
Ich bin mir nicht sicher, was Sie mit dem Ausgangs-Array meinen: 'my_array' von oben? Alle Änderungen, die Sie daran vornehmen, werden nur im Speicher gespeichert, es sei denn, Sie speichern sie selbst (in eine 'h5py.File' oder mit etwas wie' numpy.save'). – Dougal
Für die Nachwelt: Die Methode '.value' funktioniert nicht mehr. Verwenden Sie stattdessen 'f ['array_name'] [()]'. – Dougal