HDF5のAttribute(属性)の作成・読み取り by Python (h5py)
前置き
HDF5のAttributeを読み取りたいと思って検索したが、日本語の文献はCやfortranによる扱いばかりを説明したものばかりだった。h5pyのドキュメントをさらっと見てもよくわからなかった(たぶん説明が書いてあったんだろうが、初心者ゆえあまり理解できない部分が多かった.....)。
stackoverflowに良い質問と回答があったので(以下リンク)、ほとんどそれの翻訳みたいな記事をここに記しておく(ただし、Attributeの作成に関しては省略する)。
HDF5のAttributeの読み取り
手順は
- h5py をインストール
- (ファイルを開くときは with がより良いらしい)
- GroupやDatasetに .attrs を付けることでそのAttributeにアクセスできる
- さらに .keys() を付ければ、Attributeの中身にアクセスできる
import h5py
with h5py.File("path/to/hdf5file", 'a') as f:
# Attributeには .attrs でアクセスできる
attr_exmpl = f["path/to/Group_or_Dataset"].attrs
print("読み込んだAttributeは:", attr_exmpl)
# Attributeのリストは .keys() で得られる
print( attr_exmpl.keys() )
# これを用いて、それぞれのAttributeの中身のデータを表示させる
for k in attr_exmpl.keys():
print( '{} : {}'.format(k, attr_exmpl[k]) )
出力↓
読み込んだAttributeは: <Attributes of HDF5 object at [数字]>
<KeysViewHDF5 ['attr0', 'attr1', 'attr2', 'attr3', 'attr4']>
attr0 : 10
attr1 : [0 1 2 3 4]
attr2 : [[0 1 2]
[3 4 5]]
attr3 : 0.
attr4 : [1. 1. 1.]
まとめ
file["path/to/Group_or_Dataset"].attrs["name_of_attribute"]
でAttributeの中身を見ることができる。
追記(公式ドキュメント見ればわかる話でした)
前置きでも言い訳したように、公式ドキュメントを読んでも基礎知識の不足であまり理解できず、stackoverflowから具体的な操作を学び、それをこちらに日本語化したわけだが.....
改めてここで紹介した方法と公式ドキュメントを見比べていると、公式ドキュメントの言っていることがわかりました。
なのでこのページは初心者向けということになりますね。
Author And Source
この問題について(HDF5のAttribute(属性)の作成・読み取り by Python (h5py)), 我々は、より多くの情報をここで見つけました https://qiita.com/TheJuniorTheSenior/items/0ff16a509055a7bb0dc9著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .