python
階層的なバイナリデータのフォーマット、 Hierarchical Data Formatのバージョン5という意味で、これを略して拡張子h5となっている(略しすぎである)。 h5ファイルは現在はあまり使われない形式ではあるが、古い機械学習のデータセットとか Matlab用のデータのファイルとかで間々見かけることがある。
h5ファイルの中身を確認したくなった場合どうすればよいだろうか? Matlabがないと開けないのかとも思ってしまうが、実はPythonにh5pyという読み書き用ライブラリが既にあるので、 これを使うだけである。
h5ファイルの内部はdict型に近い扱いが可能であり、キー・バリューでデータが管理されている。 値はdatasetと呼ばれ、 NumPyの多次元配列に近い形で扱うことができる。 Hierarchical (階層的) という名前の通り、キーを入れ子にしてdict of dict的な構成も可能である。
$ pip install h5py
In [1]: import h5py In [2]: data = h5py.File("./hdffile.h5") # サンプル用の適当なファイルを読み込み In [3]: fin.keys() # キーを確認 Out[3]: <keysviewhdf5 ['test']=""> In [4]: fin["test"] # 型を確認 Out[4]: <hdf5 dataset="" "test":="" shape="" (36,),="" type="" "<i8"=""> In [5]: for i in data["test"]: print(i) # 配列内容がprintされればok
おすすめ記事
PIL, NumPy, PyTorchのデータ相互変換早見表NumPyのarray.sizeに相当するのはPytorchのTensor.numel()
pipの設定ファイルpip.confはどこに? 置いてある可能性のある場所一覧