Предположим, у нас есть список numpy
массивов A
, и мы хотим сохранить их последовательно в файл HDF5.
Мы можем использовать библиотеку h5py
для создания наборов данных с каждым набором данныхсоответствующий массиву в A
.
import h5py, numpy as np
A = [arr1, arr2, arr3] # each arrX is a numpy array
with h5py.File('file.h5', 'w', libver='latest') as f: # use 'latest' for performance
for idx, arr in enumerate(A):
dset = f.create_dataset(str(idx), shape=(240, 240), data=arr, chunks=(240, 240)
compression='gzip', compression_opts=9)
Я использую gzip
сжатие здесь по соображениям совместимости, поскольку оно поставляется с каждой установкой HDF5.Вы также можете рассмотреть фильтры blosc
& lzf
.Я также установил chunks
равным shape
, исходя из предположения, что вы намерены читать целые массивы, а не частичные.
Документация h5py является отличным ресурсом для улучшения вашего пониманияформат HDF5, так как h5py
API близко следует за API C.