我用:
import h5py
f = h5py.File('myfile.h5', 'r')
d = {}
for k in f.iterkeys():
d[k] = f[k][:]
将整个HDF5文件(每个2 MB的2 GB,1000 numpy
阵列)读入内存。
有没有更快捷的方式将HDF5的所有内容加载到内存中?
(也许这里的循环会在文件中执行很多操作"移动"(搜索?)因为每个f[k]
都没有按照给出for k in f.iterkeys()
的顺序放置?)
答案 0 :(得分:6)
PyTables(另一个Python HDF5库)支持使用H5FD_CORE driver将整个文件加载到内存中。 h5py似乎也支持内存映射文件(参见File Drivers)。所以就这样做
import h5py
f = h5py.File('myfile.h5', 'r', driver='core')
然后你就完成了,因为文件已经存在于内存中。