【发布时间】:2017-10-11 06:47:30
【问题描述】:
我有两个存储在 hdf5 中的 numpy 数组,它们是 每个 44 GB。我需要将它们连接在一起 但需要在磁盘上执行,因为我只有 8gb 内存。 我该怎么做?
谢谢!
【问题讨论】:
-
HDF5 对 numpy 一无所知,因此它不是“numpy 数组”。一次只阅读其中的一部分并将它们连接起来。
[1, 2, 3, 4].concat([5, 6, 7, 8]) 和[1, 2].concat([3, 4]).concat([5, 6]).concat([7, 8])一样,应该可以分块做。 -
有一个
h5py模块可以从 hdf5 文件中加载数组。它可以分块加载。但是如果你不能同时加载这两个文件,你就不能将它们连接起来或将新的更大的数组写入文件。 -
Combining hdf5 files的可能重复
-
hpaulj,所以如果我的 hdf5 文件是 44 gb,并且我想将它们组合成一个 hdf5 文件,我将需要 88gb 的 ram 临时组合,然后再写回 hdf5 文件?
-
是的,如果你想用
python来做这件事。我不知道hdf5实用程序(基于 C 或 Fortran)可以做什么。