1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

HDF5について① 〜Quick Start Guide〜

Last updated at Posted at 2021-08-14

備忘録です。かなり初心者なので、どしどしご指摘お願いします。
https://docs.h5py.org/en/latest/index.html
Quick Start Guide
を参考にしています。

1.HDF5とは(超ざっくり)

HDFとは"Hierarchical Data Format"の略であり、ファイル形式の一種。イメージ的には、HDF5ファイルひとつに、フォルダ(ディレクトリ)&ファイルをしまうことができるイメージ。

2.HDF5の中身

中に入っているオブジェクトは、ディレクトリ的存在の「groups」とNumpy配列のような「datasets」の2種類に大別できる。

2-1中身を確認するコード(Anaconda)

私はAnacondaを使用しています。
まず、rootにあるオブジェクトの確認。

# 準備:h5pyパッケージ&HDF5ファイルの読み込み
import h5py
f = h5py.File('読み込むファイル名.h5','r')

# 今いる階層内にあるオブジェクトのリストを表示
list(f.keys())
# こっちでも○
for name in f:
   print(name)

次に、個別のデータセットの情報確認

dset = f['データセット名'] #準備
dset.shape #データセット(配列)の形確認
dset.dtype #データセット(配列)のタイプ確認
dset.name  #オブジェクトのいる階層確認

などができる。
ちなみに、データ階層は/で区切られ、トップの階層はrootといい、"/"と表される。

2-2データを作成するコード(Anaconda)

こっちを先に書くべきだったかもしれません。hdf5ファイル・group・datasetの作成についてです。

f=h5py.File("mytestfile.hdf5","w")#ファイル作成。'w'は、初期化・新規作成。
dset=f.create_dataset(name="mydataset",shape=(100,),dtype='i')#データセットの作成(root直下)
grp = f.create_group("subgroup")#(サブ)グループの作成
dset2 = grp.create_dataset("another_dataset", (50,), dtype='f')#サブグループ内にデータセット作成

また、次のようにパスをフルで書いてもいける

dset3 = f.create_dataset('subgroup2/dataset_three', (10,), dtype='i')
(補足)Attributes

2−1で、HDF5の中身はgroup&datasetに大別できると書きましたが、Attributesというものもあるらしいです。イメージ的には、データのすぐ隣りにあって、データ属性を示すもの?(自信ないです)

2-3中身を確認するコード(Ubuntu)

h5dump -H ファイル名.h5   #ヘッダーの情報を返す
h5dump -n ファイル名.h5   #データセットの情報を返す

ヘッダーが何なのかはよく分かっていないので勉強してきます。

1
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?