tutorial python hdf5

tutorial - Cómo leer archivos HDF5 en Python



h5py tutorial (5)

Leer HDF5

import h5py filename = ''file.hdf5'' f = h5py.File(filename, ''r'') # List all groups print("Keys: %s" % f.keys()) a_group_key = list(f.keys())[0] # Get the data data = list(f[a_group_key])

Escribe HDF5

#!/usr/bin/env python import h5py # Create random data import numpy as np data_matrix = np.random.uniform(-1, 1, size=(10, 3)) # Write data to HDF5 data_file = h5py.File(''file.hdf5'', ''w'') data_file.create_dataset(''group_name'', data=data_matrix) data_file.close()

Ver documentos h5py para más información.

Alternativas

  • JSON: Agradable para escribir datos legibles por humanos; Muy de uso común ( lectura y escritura )
  • CSV: formato super simple ( lectura y escritura )
  • pickle: un formato de serialización Python ( lectura y escritura )
  • MessagePack ( paquete de Python ): Representación más compacta ( lectura y escritura )
  • HDF5 ( paquete Python ): agradable para matrices ( lectura y escritura )
  • XML: existe también * suspiro * ( read y write )

Para su aplicación, lo siguiente podría ser importante:

  • Soporte por otros lenguajes de programación.
  • Rendimiento de lectura / escritura
  • Compacidad (tamaño del archivo)

Ver también: Comparación de formatos de serialización de datos.

En caso de que esté buscando una forma de crear archivos de configuración, puede leer mi artículo corto Archivos de configuración en Python

Estoy tratando de leer los datos del archivo hdf5 en Python. Puedo leer el archivo hdf5 usando h5py , pero no puedo averiguar cómo acceder a los datos dentro del archivo.

Mi código

import h5py import numpy as np f1 = h5py.File(file_name,''r+'')

Esto funciona y el archivo se lee. Pero, ¿cómo puedo acceder a los datos dentro del objeto de archivo f1 ?


Lo que necesitas hacer es crear un conjunto de datos. Si echa un vistazo a la guía de inicio rápido, le muestra que necesita usar el objeto de archivo para crear un conjunto de datos. Entonces, f.create_dataset y luego puedes leer los datos. Esto se explica en los docs .


Puedes usar Pandas.

import pandas as pd pd.read_hdf(filename,key)


Use el siguiente código para leer los datos y convertirlos en una matriz numpy

import h5py f1 = h5py.File(''data_1.h5'', ''r'') list(f1.keys()) X1 = f1[''x''] y1=f1[''y''] df1= np.array(X1.value) dfy1= np.array(y1.value) print (df1.shape) print (dfy1.shape)


Leyendo el archivo

import h5py data = h5py.File(file_name, mode)

Estudiando la estructura del archivo imprimiendo qué grupos HDF5 están presentes

for key in data.keys(): print(key) #Names of the groups in HDF5 file.

Extraer los datos.

#Get the HDF5 group group = data[key] #Checkout what keys are inside that group. for key in group.keys(): print(key) data = group[some_key_inside_the_group].value #Do whatever you want with data #After you are done data.close()