Я пытаюсь отобразить в памяти отдельные наборы данных в файле 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]
Я предполагаю, возможно, мне следовало бы установить значение 'offset', когда я сделал np.memmap
. Это ошибка в моем коде? Если это так, как мне узнать правильное значение смещения каждого набора данных в HDF5?