我用:
import h5py
f = h5py.File('myfile.h5', 'r')
d = {}
for k in f.iterkeys():
d[k] = f[k][:]
将整个 HDF5 文件读入内存(2 GB,1000 个 numpy
数组,每个数组 2 MB)。
有没有更快的方法将 HDF5 的所有内容加载到内存中?
(也许这里的循环在文件中做了很多“移动”(寻找?),因为每个 f[k]
都没有按照 for k in 的顺序放置f.iterkeys()
?)
最佳答案
PyTables (另一个 Python HDF5 库)支持使用 H5FD_CORE driver 将整个文件加载到内存中. h5py 似乎也支持内存映射文件(参见 File Drivers )。就这样吧
import h5py
f = h5py.File('myfile.h5', 'r', driver='core')
你就完成了,因为文件已经驻留在内存中了。
关于python - 将包含 Numpy 数组的整个 HDF5 读入内存的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22373299/