with importar datos python arrays numpy h5py

with - importar datos en python



Cómo sobrescribir la matriz dentro del archivo h5 usando h5py (2)

Desea asignar valores, no crear un conjunto de datos:

f1 = h5py.File(file_name, ''r+'') # open the file data = f1[''meas/frame1/data''] # load the data data[...] = X1 # assign new values to data f1.close() # close the file

Para confirmar que los cambios se realizaron y guardaron correctamente:

f1 = h5py.File(file_name, ''r'') np.allclose(f1[''meas/frame1/data''].value, X1) #True

Estoy intentando sobrescribir una matriz numpy que es una pequeña parte de un archivo h5 bastante complicado.

Estoy extrayendo una matriz, cambiando algunos valores y luego quiero volver a insertarla en el archivo h5.

No tengo problemas para extraer la matriz que está anidada.

f1 = h5py.File(file_name,''r'') X1 = f1[''meas/frame1/data''].value f1.close()

Mi intento de código se ve algo así sin éxito:

f1 = h5py.File(file_name,''r+'') dset = f1.create_dataset(''meas/frame1/data'', data=X1) f1.close()

Como una prueba de validez, ejecuté esto en Matlab usando el siguiente código, y funcionó sin problemas.

h5write(file1, ''/meas/frame1/data'', X1);

¿Alguien tiene alguna sugerencia sobre cómo hacer esto con éxito?


La respuesta de askewchan describe la forma de hacerlo (no puede crear un conjunto de datos con un nombre que ya existe, pero, por supuesto, puede modificar los datos del conjunto de datos). Sin embargo, tenga en cuenta que el conjunto de datos debe tener la misma forma que los datos ( X1 ) que está escribiendo en él. Si desea reemplazar el conjunto de datos con algún otro conjunto de datos de forma diferente, primero debe eliminarlo:

del f1[''meas/frame1/data''] dset = f1.create_dataset(''meas/frame1/data'', data=X1)