Как numpy .memmap работает на HDF5 с несколькими наборами данных? - PullRequest
1 голос
/ 10 февраля 2020

Я пытаюсь отобразить в памяти отдельные наборы данных в файле 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?

...