1

我正在尝试在 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。这是我代码中的错误吗?如果是这样,我如何找出 HDF5 中每个数据集的正确偏移值?

4

0 回答 0