python - 将包含 Numpy 数组的整个 HDF5 读入内存的最快方法

标签 python arrays numpy hdf5 h5py

我用:

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/

相关文章:

python - 使用 python 从 yaml 读取和转储 [bracket, list]

javascript - 这个 IE array.push 错误有合理的理由吗?

javascript - 使用 Prop 切换导航列表,嵌套数组/对象

python - 在 scipy 中创建新的发行版

python - python中slice(x,y)函数的使用

python - 如何更改包含字符串的日期时间格式列

python - numexpr:临时变量或重复的子表达式?

python - 如何在Python中的for循环内创建对象列表而不继承属性值

python - 词典理解和创建过程中的键检查

c++ - memcpy_p问题,如何解决?