【发布时间】:2015-05-01 15:47:19
【问题描述】:
我想将 numpy 数组写入文件并轻松再次加载它们。
我想要一个函数save(),它最好以以下方式工作:
data = [a, b, c, d]
save('data.h5', data)
然后执行以下操作
h5f = h5py.File('data.h5', 'w')
h5f.create_dataset('a', data=a)
h5f.create_dataset('b', data=b)
h5f.create_dataset('c', data=c)
h5f.create_dataset('d', data=d)
h5f.close()
然后我想轻松地加载这些数据,例如
a, b, c, d = load('data.h5')
执行以下操作:
h5f = h5py.File('data.h5', 'r')
a = h5f['a'][:]
b = h5f['b'][:]
c = h5f['c'][:]
d = h5f['d'][:]
h5f.close()
我可以想到以下方法来保存数据:
h5f = h5py.File('data.h5', 'w')
data_str = ['a', 'b', 'c', 'd']
for name in data_str:
h5f.create_dataset(name, data=eval(name))
h5f.close()
我想不出类似的方式来使用data_str 然后再次加载数据。
【问题讨论】:
-
你看过
numpy.savez吗?它不是 hdf5,但它会很容易地完成您的任务。