J'essaie de lire les données d'un fichier hdf5 en Python. Je peux lire le fichier hdf5 à l'aide de h5py
, mais je ne peux pas comprendre comment accéder aux données qu'il contient.
import h5py
import numpy as np
f1 = h5py.File(file_name,'r+')
Cela fonctionne et le fichier est lu. Mais comment puis-je accéder aux données à l'intérieur de l'objet fichier f1
?
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])
#!/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()
Voir h5py docs pour plus d'informations.
Pour votre application, les éléments suivants peuvent être importants:
Voir aussi: Comparaison des formats de sérialisation des données
Si vous cherchez plutôt un moyen de créer des fichiers de configuration, vous pouvez lire mon court article Fichiers de configuration en Python
vous pouvez utiliser des pandas.
import pandas as pd
pd.read_hdf(filename,key)
Lecture du fichier
import h5py
f = h5py.File(file_name, mode)
Etudier la structure du fichier en imprimant quels groupes HDF5 sont présents
for key in f.keys():
print(key) #Names of the groups in HDF5 file.
Extraire les données
#Get the HDF5 group
group = f[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
f.close()
Ce que vous devez faire, c'est créer un jeu de données. Si vous consultez le guide de démarrage rapide, il vous indique que vous devez utiliser l'objet fichier pour créer un jeu de données. Donc, f.create_dataset
et ensuite vous pourrez lire les données. Ceci est expliqué dans la docs .
Pour lire le contenu du fichier .hdf5 sous forme de tableau, vous pouvez procéder comme suit:
> import numpy as np
> myarray = np.fromfile('file.hdf5', dtype=float)
> print(myarray)
Utilisez le code ci-dessous pour lire les données et les convertir en tableau 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)