2017-03-31 1 views
0

Ich versuche, eine numpy Array in einer HDF-Datei mit h5py zu speichern, wie folgt:HDF-Datei speichert nicht richtig mit h5py

with h5py.File("mfcc_aligned.hdf", "w") as aligned_f: 
    # do stuff to create two numpy arrays, training_X and training_Y 
    print(len(training_X)) # this returns the number of elements I expect in the the numpy arr 
    aligned_f.create_dataset("train_X", data=training_X) 
    aligned_f.create_dataset("train_Y", data=training_Y) 
    # if I add a line here to access the datasets I just created, I see that aligned_f does indeed have two keys train_X and train_Y with the shapes I expect 

Wenn jedoch das Programm beendet und ich überprüfen Sie die Datei mfcc_aligned.hdf, es ist genau 800 Bytes (viel kleiner als ich erwarte), und es gibt keine Schlüssel. Ich weiß nicht, was hier vor sich geht.

Vielen Dank im Voraus für alle Einsichten!

+0

haben Sie versuchen: mit h5py.File ('mfcc_aligned. hdf ',' r ') als hf: print = hf [' train_X '] [:] – user1269942

Antwort

0

haben Sie versuchen (nicht in den Kommentaren haben Format):

with h5py.File('mfcc_aligned.hdf', 'r') as hf: 
    print hf['train_X'][:] 
+1

Was ist das 'print =' do? – hpaulj

+0

@hpaulj oops! Vielen Dank. – user1269942

0

Ich habe keine Probleme mit Ihrem Code:

In [59]: import h5py 
In [60]: training_X = np.arange(12).reshape(3,4) 
In [61]: training_Y = np.arange(3).reshape(3,1) 
In [62]: with h5py.File("mfcc_aligned.hdf", "w") as aligned_f: 
    ...:  # do stuff to create two numpy arrays, training_X and training_Y 
    ...:  print(len(training_X)) # this returns the number of elements I expe 
    ...: ct in the the numpy arr 
    ...:  aligned_f.create_dataset("train_X", data=training_X) 
    ...:  aligned_f.create_dataset("train_Y", data=training_Y) 
    ...:  
3 
In [63]: f = h5py.File("mfcc_aligned.hdf") 
In [64]: list(f.keys()) 
Out[64]: ['train_X', 'train_Y'] 
In [66]: f['train_X'].value 
Out[66]: 
array([[ 0, 1, 2, 3], 
     [ 4, 5, 6, 7], 
     [ 8, 9, 10, 11]]) 
In [67]: f['train_Y'][:] 
Out[67]: 
array([[0], 
     [1], 
     [2]]) 
In [68]: ll mfcc_aligned.hdf 
-rw-rw-r-- 1 paul 2204 Mar 31 14:10 mfcc_aligned.hdf 
Verwandte Themen