Извлечь данные в массивы numpy из файла hdf5

Несмотря на то, что я нашел несколько ресурсов по этой задаче, я не могу извлечь данные из файла hdf5 (для курса Datacamp, над которым я работаю).

Я хотел бы работать с примерами в моей локальной системе.

Вот что у меня есть:

import h5py
import numpy as np
import pandas as pd

filename = "e:\\python\\datacamp\\time_series_with_python\\machine_learning_for_time_series_data_in_python\\audio_munged.hdf5"
'''
data = pd.read_hdf(filename, key)
data = pd.read_hdf(filename, 'h5io')
print(data)
# Reading the file
'''

f = h5py.File(filename, 'r')

# Studying the structure of the file by printing what HDF5 groups are present

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

    # Extracting the data

    # Get the HDF5 group
    group = f[key]

    # Checkout what keys are inside that group.
    for gkey in group.keys():
        print(gkey)
    # key_data = group['key_data'].value   <-- This generates an error

Я получаю это:

h5io
key_data
key_meta
key_sfreq

Traceback (most recent call last):
  File "C:/Users/Mark/PycharmProjects/main/main.py", line 27, in <module>
    key_data = group['key_data'].value
AttributeError: 'Group' object has no attribute 'value'

Вопрос № 1: Как извлечь значения из «key_data», «key_meta» и «key_sfreq» в отдельные массивы numpy?

Вопрос № 2: Я попытался просто вытащить файл hdf5 в pandas (код выше), но я не знаю, каким должно быть правильное значение параметра «ключ». Я пробовал h5io, но это неправильно. Затем я попробовал остальные три (key_ ), и все они тоже не сработали.


person MarkS    schedule 12.12.2020    source источник
comment
попробуйте просто group['key_data'] или group['key_data'].values()   -  person venky__    schedule 12.12.2020
comment
Вариант 1 дает: ‹Группа HDF5 /h5io/key_data (4 члена)› Вариант 2 дает: ValuesViewHDF5(‹Группа HDF5 /h5io/key_data (4 члена)›)   -  person MarkS    schedule 12.12.2020


Ответы (1)


Я нашел то, что искал здесь:

https://stackoverflow.com/questions/34330283/how-to-differentiate-between-hdf5-datasets-and-groups-with-h5py

Я не собирался достаточно глубоко. Код, опубликованный пользователем Yas, показал мне, как добраться до значений.

person MarkS    schedule 12.12.2020