5

我用 :

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()?)

4

1 回答 1

7

PyTables (另一个 Python HDF5 库)支持使用H5FD_CORE 驱动程序将整个文件加载到内存中。h5py 似乎也支持内存映射文件(请参阅文件驱动程序)。所以就这样做

import h5py
f = h5py.File('myfile.h5', 'r', driver='core')

你就完成了,因为文件已经驻留在内存中。

于 2014-03-13T08:49:02.090 回答