H5pyをインストールしてHDF5ファイルを扱う【Python】

H5pyをインストールしてHDF5ファイルを扱う【Python】 プログラミング

PythonでHDF5ファイルを扱うためには、H5pyライブラリが必要です。
また、機械学習を行う上でHDF5ファイルがしばしば出てきます。

そのため、Pythonで機械学習を行う上ではH5pyを避けては通れません。

そもそも、HDF5はどんなファイルなのか?
そして、どうすればPythonでHDF5を扱うことができるのか?

この記事では、これらの疑問に回答する内容をまとめています。
急にHDF5ファイルを触らなければならない人にとって、参考となる内容になっています。

本記事の内容

  • H5pyとは?
  • H5pyのシステム要件
  • H5pyのインストール
  • H5pyの動作確認

それでは、上記に沿って解説していきます。

H5pyとは?

H5pyは、HDF5形式のファイルにアクセスするためのPython用ライブラリです。
そして、H5pyを知るにはHDF5を知る必要があります。

H5pyが対象とするHDF5の特徴は、以下。

  • 膨大な量の数値データを保存できる
  • データを辞書やNumPy配列として保存できる
  • 多くの言語で利用ができる

上記で言う多くの言語には、以下のモノがあります。

  • Go
  • Python
  • Perl
  • R
  • Rust
  • C/C++
  • Java

有名どころのプログラム言語は、ほぼサポートしています。
PHPとRubyがいないぐらいですかね。
あと、ここで記載した以外にも、サポートしている言語は存在しています。

上記の特徴を見る限りで受けたHDF5のイメージは、以下となります。
「どこでも簡単に導入できる簡易データベース」

また、HDF5はバイナリ形式です。
だから、より一層データベースという印象を受けます。

ちなみに、HDF5形式のファイルは機械学習でよく利用されます。
そもそも、私は機械学習の過程で初めてHDF5ファイルに触れました。

以上が、HDF5の説明です。
このHDF5をPythonで扱うことができるのが、H5pyライブラリということになります。

次に、H5pyのシステム要件を確認しましょう。

H5pyのシステム要件

H5pyの最新バージョンは、3.1.0となります。
2020年10月にリリースされています。
その最新バージョンでは、Python 3.6以降がサポート対象です。

サポートしているPythonバージョンの範囲は、狭いですね。
この部分は、要注意となります。

対象OSは、以下。

  • Windows
  • macOS
  • Linux

つまり、基本的にはどこでも動くということです。
ちなみに、今回は以下の環境にH5pyをインストールします。

  • Windows 10
  • Python 3.8.6

以上が、H5pyのシステム要件となります。
それでは、H5pyをインストールしていきます。

H5pyのインストール

最初に、現状のインストール済みパッケージを確認しておきます。

>pip list
Package    Version
---------- -------
pip        20.3.3
setuptools 51.1.1

次にするべきことは、pip自体の更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。

python -m pip install --upgrade pip

いざ、H5pyのインストールです。
H5pyのインストールは、以下のコマンドで行います。

pip install h5py

インストールは、一瞬で終わります。
では、どんなパッケージがインストールされたのかを確認しましょう。

>pip list
Package    Version
---------- -------
h5py       3.1.0
numpy      1.19.5
pip        20.3.3
setuptools 51.1.1

NumPyのパッケージが、同時にインストールされています。
やはり、HDF5にNumPy配列を保存できる以上は必須ということなのでしょう。

以上、インストールは問題ないと確認できました。
それでは、動作確認を行います。

H5pyの動作確認

H5pyの動作確認で参考にしたサイト
https://docs.h5py.org/en/stable/quick.html

以下の流れで動作確認を行います。

  • HDF5ファイルの作成
  • HDF5ファイルの読み込み

HDF5ファイルの作成

「test」というキーでデータセットを2×2で用意。
そして、値をセット。

そのデータセットを「test.hdf5」というファイルに保存します。
同じフォルダ上にtest.hdf5が作成されます。

上記の内容を下記コードで表現しています。

import h5py

with h5py.File("test.hdf5", "w") as f:
    dset = f.create_dataset("test", (2, 2))
    dset[0, 0] = 3.0
    dset[0, 1] = 10.0

上記のプログラムを実行すると、同じフォルダ上にtest.hdf5ファイルが作成されています。

HDF5ファイルの読み込み

作成したtest.hdf5ファイルを読み込みます。
そして、セットした値を表示。

上記を以下のコードで表現しています。

import h5py

with h5py.File("test.hdf5", "r") as f:
    data_1 = f["test"][0, 0]
    data_2 = f["test"][0, 1]
    print(data_1)
    print(data_2)

このコードを実行すると、以下の表示となります。

3.0
10.0

ちゃんとtest.hdf5の内容を読み込めています。
ちなみに、test.hdf5の内容はバイナリのため、普通は見ることができません。

しかし、HDF5ファイル専用のビューワーを使えば、内容を見ることができます。
でも、今回の内容程度であれば、HDF5をビューワーで見る必要はありませんけどね。

タイトルとURLをコピーしました