h5py Datasets 的写入过程是如何进行的?
How does the writing process work in h5py Datasets?
我正在使用以下语法覆盖 Python 中的 hdf5 文件的一部分:
import h5py
f = h5py.File(file_path, 'r')
dset = f["mykey"]
dset[:3] = [1,2,3]
f.close()
它似乎有效,但我无法在文档中找到有关如何进行此更新的信息。我想知道数据集是 (1) 加载到内存中,(2) 更新,(3) 完全写回,还是只是更新磁盘上的数据。
我问这个是因为我想为 npy 文件重新编码,我可以选择加载数据、更新数据和重写数据,或者只使用搜索并只在磁盘上进行必要的更新。
那么您是否研究过 h5py
文档,尤其是有关数据集的页面?都在那里。
这是我通过阅读这些文档和回答各种 SO 得出的结论。
f = h5py.File(file_path, 'r')
dset = f["mykey"]
dset
是数据集对象,位于文件中。
arr = dset[:]
会将数据集加载到一个 numpy 数组中。
dset[:3] = [1,2,3]
另一方面,将 np.array([1,2,3])
写入文件中的数据集;也就是说,它将修改文件对象的前 3 个元素。
f.close()
由于缓冲等原因,在 f
为 flushed
或 closed
.
之前,写入可能不会真正发生
因为可以只加载数据集的一部分
arr = dset[:3]
我推断它可以在不加载整个 dset
的情况下执行写入。实际代码是 python、c++ 的混合,以 cython
作为桥梁。
我正在使用以下语法覆盖 Python 中的 hdf5 文件的一部分:
import h5py
f = h5py.File(file_path, 'r')
dset = f["mykey"]
dset[:3] = [1,2,3]
f.close()
它似乎有效,但我无法在文档中找到有关如何进行此更新的信息。我想知道数据集是 (1) 加载到内存中,(2) 更新,(3) 完全写回,还是只是更新磁盘上的数据。
我问这个是因为我想为 npy 文件重新编码,我可以选择加载数据、更新数据和重写数据,或者只使用搜索并只在磁盘上进行必要的更新。
那么您是否研究过 h5py
文档,尤其是有关数据集的页面?都在那里。
这是我通过阅读这些文档和回答各种 SO 得出的结论。
f = h5py.File(file_path, 'r')
dset = f["mykey"]
dset
是数据集对象,位于文件中。
arr = dset[:]
会将数据集加载到一个 numpy 数组中。
dset[:3] = [1,2,3]
另一方面,将 np.array([1,2,3])
写入文件中的数据集;也就是说,它将修改文件对象的前 3 个元素。
f.close()
由于缓冲等原因,在 f
为 flushed
或 closed
.
因为可以只加载数据集的一部分
arr = dset[:3]
我推断它可以在不加载整个 dset
的情况下执行写入。实际代码是 python、c++ 的混合,以 cython
作为桥梁。