Bas*_*asj 5 python arrays numpy hdf5 h5py
我用 :
import h5py
f = h5py.File('myfile.h5', 'r')
d = {}
for k in f.iterkeys():
d[k] = f[k][:]
Run Code Online (Sandbox Code Playgroud)
将整个HDF5文件读入内存(2 GB,1000个numpy阵列,每个2 MB).
有没有更快的方法将HDF5的所有内容加载到内存中?
(也许这里的循环在文件中做了很多"移动"(搜索?),因为每个f[k]都没有按照给出的顺序放置for k in f.iterkeys()?)
PyTables(另一个Python HDF5库)支持使用H5FD_CORE驱动程序将整个文件加载到内存.h5py似乎也支持内存映射文件(请参阅文件驱动程序).所以就这么做
import h5py
f = h5py.File('myfile.h5', 'r', driver='core')
Run Code Online (Sandbox Code Playgroud)
然后你就完成了,因为文件已经存在于内存中.