# encoding: utf-8
import h5py
# 書き込むデータ
x = 100
a = [1, 2, 3, 4, 5]
# 書き込み
with h5py.File('output.h5', 'w') as f:
f.create_dataset('x', data=x)
f.create_dataset('a', data=a)
# 読み込み
with h5py.File('output.h5', 'r') as f:
print(f.keys()) # => ['a', 'x']
print(f['x'].value) # => 100
print(f['a'].value) # => [1 2 3 4 5]
print(f['a'].shape) # => (5,)
print(f['a'].dtype) # => int64
# グループを作成する
with h5py.File('output_group.h5', 'w') as f:
f.create_group('hoge')
f['hoge'].create_dataset('x', data=x)
f['hoge'].create_dataset('a', data=a)
# これで以下のようなグループとデータセットが作成される
#
# output_group.h5 --- Group 'hoge'
# |
# +- Dataset 'x'
# |
# +- Dataset 'a'
# 他の書き方
f.create_group('fuga')
f.create_dataset('/fuga/x', data=200)
f.create_dataset('/fuga/a', data=[10, 20, 30, 40, 50])
# この場合 create_group は省略可
# '/fuga/x' の先頭のスラッシュは省略可 ('fuga/x' で OK)
with h5py.File('output_group.h5', 'r') as f:
print(f['hoge']['x'].value) # => 100
print(f['hoge']['a'].value) # => [1 2 3 4 5]
# 他の書き方
print(f['fuga/x'].value) # => 200
print(f['fuga/a'].value) # => [10 20 30 40 50]
# ここでも '/fuga/x' の先頭のスラッシュは省略可 ('fuga/x' で OK)