2017-03-31 77 views
0

我想在一个HDF文件保存numpy的阵列h5py如下妥善保存:HDF文件不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 

然而,在程序结束时,我检查文件mfcc_aligned.hdf,这正是800字节(比我预期的小得多),并且没有密钥。我对这里发生的事情感到不知所措。

在此先感谢您的任何见解!

+0

做了尝试:用h5py.File('mfcc_aligned。 hdf','r')为hf: print = hf ['train_X'] [:] – user1269942

回答

0

做了尝试(没有在评论中格式化):

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

那是什么'print ='呢? – hpaulj

+0

@hpaulj哎呀!谢谢。 – user1269942

0

我没有任何问题与您的代码:

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