numpy.memmap如何在具有多个数据集的HDF5上工作?

2024-09-21 05:53:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在HDF5文件中对单个数据集进行内存映射:

import h5py
import numpy as np
import numpy.random as rdm
n = int(1E+8)
rdm.seed(70)
dset01 = rdm.rand(n)
dset02 = rdm.normal(0, 1, size=n).astype(np.float32)
with h5py.File('foo.h5', mode='w') as f0:    
    f0.create_dataset('dset01', data=dset01)
    f0.create_dataset('dset02', data=dset02)
fp = np.memmap('foo.h5', mode='r', dtype='double')
print(dset01[:3])
print(fp[:3])
del fp

但是,下面的输出表明fp中的值与dset01中的值不匹配

[0.92748054 0.87242629 0.58463127]
[5.29239776e-260 1.11688278e-308 5.18067355e-318]

我在猜测,也许我应该在设置np.memmap时设置一个“offset”值。这就是我代码中的错误吗?如果是,我如何找出HDF5中每个数据集的正确偏移量值


Tags: 数据importnumpyfoomodeasnphdf5

热门问题