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()