Формат файлов HDF5 (иерархический формат данных версии 5) широко используется благодаря своим эффективным возможностям хранения и обработки. HDF5 поддерживает иерархическую структуру.,Возможность хранить и управлять крупномасштабными многомерными наборами данных в одном файле. Хотя библиотека Numpy в Python славится численными расчетами,Но с помощью внешних библиотек, таких какh5py
,Файлы HDF5 можно легко преобразовать и пишидействовать。В этой статье будет подробно описано, как использоватьNumpyобъединитьh5py
Библиотека Читай и пишиHDF5документ,Подходит для пользователей, которым необходимо обрабатывать крупномасштабные наборы данных.
HDF5 — это формат файла, который поддерживает иерархическое хранение данных, позволяя пользователям хранить несколько наборов данных и метаданные в одном файле. Каждый файл HDF5 аналогичен файловой системе и может содержать несколько «групп» и «наборов данных». Каждая группа аналогична папке, а каждый набор данных аналогичен файлу.
По сравнению с CSV и двоичными файлами преимущества файлов HDF5 в основном отражаются в:
h5py
БиблиотекаЧтобы использовать файлы HDF5,первая необходимость Установитьh5py
Библиотека。
Для установки используйте следующую команду:
pip install h5py
После завершения установки,может пройтиimport h5py
представить Библиотека,иобъединитьNumpyруководитьHDF5Документальный фильм Читай и пишидействовать。
Файлы HDF5 структурированы как файловая система, содержащая «группы» и «наборы данных». Группы эквивалентны папкам и могут содержать другие группы или наборы данных, в которых хранятся определенные данные;
Сначала создайте новый файл HDF5 и сохраните в нем массив Numpy как набор данных.
import numpy as np
import h5py
# Создайте файл HDF5.
with h5py.File('data.h5', 'w') as f:
# Создайте набор данных для хранения массивов Numpy.
data = np.arange(100).reshape(10, 10)
f.create_dataset('dataset_1', data=data)
# Создайте группу и внутри группы создайте еще один набор данных.
group = f.create_group('my_group')
group.create_dataset('dataset_2', data=np.random.rand(5, 5))
print("данные успешно сохранены в файл HDF5")
В этом коде,использоватьh5py.File()
Создал файл под названиемdata.h5
изHDF5документ,и пройтиcreate_dataset()
ВоляNumpyМассив сохраняется какданныенабор。Также создал группуmy_group
,И внутри этой группы хранится еще один набор данных.
Файлы HDF5 могут не только хранить данные, но и добавлять в набор данных атрибуты, аналогичные метаданным для файлов.
with h5py.File('data_with_attrs.h5', 'w') as f:
# Создайте набор данных и установите свойства.
dataset = f.create_dataset('dataset_with_attrs', data=np.arange(10))
dataset.attrs['description'] = «Это пример набора данных»
dataset.attrs['version'] = 1.0
print("Набор данных с атрибутами сохранен")
проходитьdataset.attrs
может бытьHDF5данныенабор Добавить пользовательские свойства,Удобно записывать описание данных.
Файлы HDF5 поддерживают произвольный доступ, который обеспечивает прямой доступ к определенным наборам данных или группам без загрузки всего файла. Это делает HDF5 превосходным средством обработки крупномасштабных данных.
может пройтиh5py.File()
Открыть существующийизHDF5документ,И прочитайте в нем наборы и группы данных.
with h5py.File('data.h5', 'r') as f:
# Прочитайте первый набор данных в корневом каталоге.
dataset_1 = f['dataset_1'][:]
print("Набор данных_1 прочитано:\n", dataset_1)
# Прочитайте набор данных внутри группы.
dataset_2 = f['my_group/dataset_2'][:]
print("Набор данных_2 прочитано:\n", dataset_2)
В этом примере,читатьHDF5документсерединаиздваданныенабор。f['dataset_1'][:]
значит прочитать всюданныенабор,И если объем данных большой,Вы также можете прочитать только часть данных.,Например f['dataset_1'][0:5]
Прочитайте первые 5 строк.
Если набор данных содержит свойства, эти свойства также можно легко прочитать.
with h5py.File('data_with_attrs.h5', 'r') as f:
# Чтение набора данных с атрибутами
dataset = f['dataset_with_attrs']
description = dataset.attrs['description']
version = dataset.attrs['version']
print("описание данного набора:", description)
print("данные заданные версии:", version)
проходитьdataset.attrs
,Обеспечивает легкий доступ к метаданным, хранящимся в коллекции данных.
Файлы HDF5 не только поддерживают простое хранение данных, но также предоставляют расширенные функции, такие как сжатие и нарезка, что обеспечивает эффективное хранение и обработку крупномасштабных наборов данных.
Чтобы сэкономить место для хранения,HDF5Поддержка сохраненияданныечасруководитьсжатие。compression
Параметры могут выбрать алгоритм сжатия,нравитьсяgzip
、lzf
ждать。
with h5py.File('compressed_data.h5', 'w') as f:
# Создайте сжатый набор данных
data = np.random.rand(1000, 1000)
f.create_dataset('compressed_dataset', data=data, compression='gzip')
print("Сжатый набор данных сохранен")
проходитьcompression='gzip'
,коллекцию данных можно сжать и сохранить,Это очень полезно при работе с крупномасштабными данными.
HDF5 поддерживает разделение наборов данных на блоки.,便于高效访问идентификациячастьданные。chunks
Параметр используется для указания размера блока набора данных.
with h5py.File('chunked_data.h5', 'w') as f:
# Создайте фрагментированный набор данных
data = np.random.rand(1000, 1000)
f.create_dataset('chunked_dataset', data=data, chunks=(100, 100))
print("Набор данных по частям сохранен")
В этом случае набор данных разбивается на блоки размером 100x100, что улучшает доступ к локальным данным.
HDF5 обеспечивает прямой доступ к частям больших наборов данных, что более эффективно, чем загрузка всего набора данных.
with h5py.File('data.h5', 'r') as f:
# Прочтите только первые 5 строк набора данных.
partial_data = f['dataset_1'][0:5]
print("Читать данные части:\n", partial_data)
Благодаря операции нарезки можно прочитать только необходимую часть данных, тем самым уменьшая использование памяти.
Файлы HDF5 поддерживают сложные иерархии и могут управлять несколькими наборами данных через группы. Группы аналогичны папкам и могут содержать другие группы или наборы данных, помогающие организовывать данные и управлять ими.
with h5py.File('grouped_data.h5', 'w') as f:
# Создать группу
group_a = f.create_group('group_a')
group_b = f.create_group('group_b')
# Создать набор данных в группе a
group_a.create_dataset('data_a1', data=np.arange(10))
group_a.create_dataset('data_a2', data=np.random.rand(5))
# Создать набор данных в группе b
group_b.create_dataset('data_b1', data=np.random.rand(3, 3))
print("Было создано несколько групп и наборов данных")
Таким образом, в одном файле HDF5 можно эффективно управлять несколькими наборами данных и группами.
В этой статье подробно рассказываетсянравитьсячтоиспользоватьPythonизNumpyБиблиотекаобъединитьh5py
иметь дело сHDF5документ,Охватывает общие операции, такие как создание файлов HDF5, чтение и запись, сжатое хранилище и блочный доступ. Преимущества формата файлов HDF5 в крупномасштабной обработке данных очевидны.,Особенно это поддерживает эффективное хранение、произвольный доступи богатыйиз Юаньданные,Это делает его важным инструментом в таких областях, как наука о данных и машинное обучение. Путем правильного использования файлов HDF5,Может повысить эффективность хранения и обработки при обработке крупномасштабных наборов данных.,Удобен для управления сложной структурой данных.
Если вы считаете, что статья хороша, поставьте лайк, поделитесь ею и оставьте сообщение, потому что это будет для меня самой сильной мотивацией продолжать выпускать больше качественных статей!