Можете ли вы просматривать файлы hdf5 в pycharm?

Есть ли способ / плагин для просмотра файлов hdf5 в pycharm, чтобы вам не приходилось устанавливать HDFVIEW для ручной проверки файла?

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
5
0
3 502
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете использовать библиотеку h5py.

Вы можете не знать заранее структуру своего файла HDF5. В этом случае вы можете использовать функцию для перебора всех путей в вашем файле HDF5. Вот пример:

def traverse_datasets(hdf_file):

    """Traverse all datasets across all groups in HDF5 file."""

    import h5py

    def h5py_dataset_iterator(g, prefix=''):
        for key in g.keys():
            item = g[key]
            path = '{}/{}'.format(prefix, key)
            if isinstance(item, h5py.Dataset): # test for dataset
                yield (path, item)
            elif isinstance(item, h5py.Group): # test for group (go down)
                yield from h5py_dataset_iterator(item, path)

    with h5py.File(hdf_file, 'r') as f:
        for (path, dset) in h5py_dataset_iterator(f):
            print(path, dset)

    return None

Пример использования:

traverse_datasets('file.h5')

/DataSet1 <HDF5 dataset "DataSet1": shape (655559, 260), type "<f4">
/DataSet2 <HDF5 dataset "DataSet2": shape (22076, 10000), type "<f4">
/index <HDF5 dataset "index": shape (677635,), type "|V384">

Затем, чтобы прочитать конкретный набор данных, вы можете выбрать путь:

with h5pyFile('file.h5', 'r') as f:
    arr = f['/DataSet1'][:]  # read entire dataset into memory

Если ваши данные не могут храниться в памяти, вы можете либо печатать итеративно, либо извлечь фрагмент в память. документация h5py имеет множество примеров. Синтаксис соответствует соглашениям NumPy.

Значит, в pycharm нет встроенного графического интерфейса для его просмотра?

Claudiu Creanga 11.07.2018 15:44

@ClaudiuCreanga, Pycharm предназначен для запуска кода Python, а не специально для файлов HDF5. «GUI» для HDF5 - это то, что вы получаете из команды print в Python. Если вы ищете решение для HDF5, вам потребуется продукт HDF5 (например, HDFVIEW).

jpp 11.07.2018 15:48

Другие вопросы по теме