Подтвердить что ты не робот

Обновление наборов данных h5py

Есть ли у кого-нибудь идеи для обновления наборов данных hdf5 от h5py? Предполагая, что мы создадим такой набор данных, как:

import h5py
import numpy
f = h5py.File('myfile.hdf5')
dset = f.create_dataset('mydataset', data=numpy.ones((2,2),"=i4"))
new_dset_value=numpy.zeros((3,3),"=i4")

Возможно ли продлить dset до массива numx 3x3?

4b9b3361

Ответ 1

Вам нужно создать набор данных с помощью свойства "extendable". Это невозможно изменить после первоначального создания набора данных. Для этого вам нужно использовать ключевое слово maxshape. Значение None в кортеже maxshape означает, что это измерение может иметь неограниченный размер. Итак, если f является файлом HDF5:

dset = f.create_dataset('mydataset', (2,2), maxshape=(None,3))

создает набор данных размера (2,2), который может неограниченно расширяться вдоль первого измерения и до 3 по второму. Теперь вы можете расширить набор данных с помощью resize:

dset.resize((3,3))
dset[:,:] = np.zeros((3,3),"=i4")

Первое измерение может быть увеличено настолько, насколько вам нравится:

dset.resize((10,3))