gpt4 book ai didi

python - 如何从文件中提取非常大的 HDF5 数据集并写入另一个文件?

转载 作者:行者123 更新时间:2023-12-01 03:49:45 38 4
gpt4 key购买 nike

我有一个非常大的密集矩阵(1M * 30K)存储在 hdf5 文件中。我能够使用以下脚本使用 h5py 读取 hdf5 文件:

import numpy as np
import h5py

f = h5py.File('myFile.hdf5', 'r')
mat = f['matrix']
# sub_mat = mat[:, :1000]
# write sub_mat into another hdf5 file

我想对矩阵进行子集化以获得仅包含前 1000 列的 sub_mat 并将该 sub_mat 写入另一个 hdf5 文件。请注意,sub_mat 的形状为 (1M * 1K),它也太大而无法加载到 RAM 中。我怎样才能做到这一点?

最佳答案

查看h5py的文档后,我发现有一个h5py.Dataset的类方法名为write_direct,可以直接将矩阵写入文件。

因此我需要做的是先创建另一个h5文件,然后创建一个数据集,并调用此方法将大矩阵直接写入文件:

import numpy as np
import h5py

f = h5py.File('myFile.hdf5', 'r')
mat = f['matrix']

f2 = h5py.File('mySubmat.hdf5', 'w')
dset = f2.create_dataset('sub_matrix', shape=(mat.shape[0], 1000), dtype=np.float32)
dset.write_direct(mat[:, :1000])
f2.close()

关于python - 如何从文件中提取非常大的 HDF5 数据集并写入另一个文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38443230/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com