Есть ли преимущество в скорости анализа или использовании памяти при использовании HDF5 для хранения больших массивов (вместо плоских двоичных файлов)?

Я обрабатываю большие 3D-массивы, которые мне часто приходится разрезать различными способами для анализа данных. Типичный «куб» может быть ~ 100 ГБ (и, скорее всего, в будущем станет больше)

Кажется, что типичный рекомендуемый формат файла для больших наборов данных в python - это использование HDF5 (h5py или pytables). Мой вопрос: есть ли преимущество в скорости или использовании памяти при использовании HDF5 для хранения и анализа этих кубов по сравнению с хранением их в простых плоских двоичных файлах? Является ли HDF5 более подходящим для табличных данных, в отличие от больших массивов, с которыми я работаю? Я вижу, что HDF5 может обеспечить хорошее сжатие, но меня больше интересует скорость обработки и борьба с переполнением памяти.

Я часто хочу проанализировать только одно большое подмножество куба. Один из недостатков как pytables, так и h5py заключается в том, что когда я беру часть массива, я всегда возвращаю массив с пустым массивом, используя память. Тем не менее, если я нарежу фрагментарную карту памяти плоского двоичного файла, я смогу получить представление, которое хранит данные на диске. Таким образом, кажется, что я могу легче анализировать определенные сектора моих данных, не перегружая свою память.

Я исследовал как pytables, так и h5py, и пока не видел преимуществ ни для моих целей.

Ответы на вопрос(1)

Ваш ответ на вопрос