执行操作时,避免将所有数据从hdf5文件读入内存

时间:2016-07-25 19:17:33

标签: python numpy hdf5 h5py

我是HDF5格式的新手,我正在使用h5py进行这些操作。我想知道当我拥有一个非常大的数据集并对其执行某种操作时究竟会发生什么。例如:

>>> f = h5py.File("mytestfile.hdf5", "w")
>>> dset = f.create_dataset("mydataset", (100000000,), dtype=np.float64)
>>> dset[...] = np.linspace(0, 100, 100000000)
>>> myResult = f["mydataset"][:] * 15
# Graph myResult, or something

现在整个myResult都在记忆中吗?是否也在记忆中?是否只有一种方法可以逐个从磁盘读入内存,一次大约100,000个点,以避免溢出(让我们假设我的数据甚至可能比例子大得多,比如50GB)?有没有办法有效地,以模块化的方式(简单地说data * 100自动执行块中的操作,并将结果再次存储在新的位置)?提前谢谢。

0 个答案:

没有答案