我是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
自动执行块中的操作,并将结果再次存储在新的位置)?提前谢谢。