È necessario creare il set di dati con la proprietà "estensibile". Non è possibile cambiarlo dopo la creazione iniziale del set di dati. Per fare questo, you need to use the "maxshape" keyword. Un valore di None
nella tupla maxshape
significa che quella dimensione può essere di dimensioni illimitate. Quindi, se f
è un file HDF5:
dset = f.create_dataset('mydataset', (2,2), maxshape=(None,3))
crea un set di dati di dimensioni (2,2), che può essere prorogato a tempo indeterminato lungo la prima dimensione e al 3 lungo la seconda. Ora, è possibile estendere il set di dati con resize
:
dset.resize((3,3))
dset[:,:] = np.zeros((3,3),"=i4")
La prima dimensione può essere aumentata tanto quanto vi piace:
dset.resize((10,3))
ridimensionamento accetta anche un argomento asse modo da avere solo per specificare le nuove dimensioni per l'asse si sta estendendo, piuttosto che tutti loro: dset.resize (10, asse = 0) – velotron
Questo è molto utile @velotron, potrebbe essere aggiunto alla risposta accettata perché per gli array multidimensionali è più facile farlo. – gcucurull
questo esempio sovrascrive quello che era precedentemente nel file? o aggiunge solo i nuovi contenuti? – user798719