У меня есть файл HDF5 размером ~ 100 ГБ, содержащий два больших трехмерных массива с плавающей запятой (данные для обучения и проверки):
import h5py
dset = h5py.File("my_dataset.hdf5", "r")
Производительность очень хороша для загрузки нескольких строк в память:
sub_dset_1 = dset["train"][1000:2000]
Но индексация по другим осям происходит очень медленно:
sub_dset_2 = dset["train"][:, :, 0]
Вопросы:
- Чем объясняется такое поведение?
- Какие форматы данных можно использовать для хранения больших данных на диске, при этом имея возможность загружать в память только их части (по разным осям)?