Вам необходимо создать набор данных с «расширяемым» свойством. Это невозможно изменить после первоначального создания набора данных. Для этого, you need to use the "maxshape" keyword. Значение 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))
изменение размера также принимает ось аргумент, так что вы должны только указать новый размер для оси, которую вы расширяете, а не для всех из них: dset.resize (10, axis = 0) – velotron
Это очень полезно @velotron, его можно добавить к принятому ответу, потому что для многомерных массивов это проще сделать. – gcucurull
этот пример перезаписывает то, что было ранее в файле? или он просто добавляет новое содержимое? – user798719