Ho un file hdf5 esistente con tre array, voglio estrarre uno degli array usando h5py.come esportare il file HDF5 in NumPy usando H5PY?
16
A
risposta
34
h5py
legge già file array come NumPy, quindi basta:
with h5py.File('the_filename', 'r') as f:
my_array = f['array_name'][()]
La [()]
mezzi per leggere l'intero array in; se non lo fai, non legge l'intero dato ma ti dà invece accesso pigro alle sotto-parti (molto utile quando l'array è enorme ma hai bisogno solo di una piccola parte di esso).
0
Per questa domanda è eccessivo, ma se avete un sacco di cose come questa io uso un pacchetto SpacePy che rende un po 'più facile.
datamodel.fromHDF5() documentazione Ciò restituisce un dizionario di array memorizzati in modo simile a come h5py gestisce i dati.
Grazie Dougal.I ho modificato il codice per: >>> f = h5py.File ('D: /! JODI/Macau Wind/u_100m/20100101.hdf5', 'r') my_array = f [ 'u']. valore f.close() Un'altra domanda stupida è l'uscita putarray in un file? dove posso trovare l'array di output? grazie mille –
Non sono sicuro di cosa intendi con l'array di output: 'my_array' dall'alto? Tutte le modifiche apportate a questo vengono memorizzate solo in memoria, a meno che non le salvi da soli (in un file 'h5py.File' o qualcosa come' numpy.save'). – Dougal
Per i posteri: il metodo '.value' non funziona più. Usa invece 'f ['array_name'] [()]'. – Dougal