Hoe HDF5-bestanden in Python te lezen

Ik probeer gegevens uit het hdf5-bestand in Python te lezen. Ik kan het hdf5-bestand lezen met h5py, maar ik weet niet hoe ik toegang kan krijgen tot de gegevens in het bestand.

Mijn code

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

Dit werkt en het bestand wordt gelezen. Maar hoe krijg ik toegang tot gegevens in het bestandsobject f1?


Antwoord 1, autoriteit 100%

HDF5 lezen

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

Schrijf HDF5

import h5py
# Create random data
import numpy as np
data_matrix = np.random.uniform(-1, 1, size=(10, 3))
# Write data to HDF5
with h5py.File("file.hdf5", "w") as data_file:
    data_file.create_dataset("group_name", data=data_matrix)

Zie h5py-documentenvoor meer informatie.

Alternatieven

Voor uw aanvraag kan het volgende van belang zijn:

  • Ondersteuning door andere programmeertalen
  • Lees-/schrijfprestaties
  • Compactheid (bestandsgrootte)

Zie ook: Vergelijking van gegevensserialisatie-indelingen

Als je liever op zoek bent naar een manier om configuratiebestanden te maken, lees dan misschien mijn korte artikel Configuratiebestanden in Python


Antwoord 2, autoriteit 17%

Het bestand lezen

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

De structuur van het bestand bestuderen door af te drukken welke HDF5-groepen aanwezig zijn

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

De gegevens extraheren

#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][()]
#Do whatever you want with data
#After you are done
f.close()

Antwoord 3, autoriteit 12%

je kunt panda’s gebruiken.

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

4

Wat u hoeft te doen is een dataset maken. Als u de QuickStart-gids bekijkt, wordt u weergegeven die u het bestandsobject moet gebruiken om een ​​dataset te maken. Dus, f.create_dataseten dan kunt u de gegevens lezen. Dit wordt uitgelegd in de docs .

Other episodes