我尝试使用h5py将numpy数组保存在HDF文件中,如下所示:
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 :(得分:0)
你试过吗(没有在评论中格式化):
with h5py.File('mfcc_aligned.hdf', 'r') as hf:
print hf['train_X'][:]
答案 1 :(得分: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