モーダルを閉じる工作HardwareHub ロゴ画像

工作HardwareHubは、ロボット工作や電子工作に関する情報やモノが行き交うコミュニティサイトです。さらに詳しく

利用規約プライバシーポリシー に同意したうえでログインしてください。

工作HardwareHub ロゴ画像 (Laptop端末利用時)
工作HardwareHub ロゴ画像 (Mobile端末利用時)
目次目次を開く/閉じる

h5py の簡単な使い方

モーダルを閉じる

ステッカーを選択してください

モーダルを閉じる

お支払い内容をご確認ください

購入商品
」ステッカーの表示権
メッセージ
料金
(税込)
決済方法
GooglePayマーク
決済プラットフォーム
確認事項

利用規約をご確認のうえお支払いください

※カード情報はGoogleアカウント内に保存されます。本サイトやStripeには保存されません

※記事の執筆者は購入者のユーザー名を知ることができます

※購入後のキャンセルはできません

作成日作成日
2019/04/11
最終更新最終更新
2023/10/31
記事区分記事区分
一般公開

目次

    アカウント プロフィール画像 (サイドバー)

    ハッカーイズム

    0
    ステッカーを贈るとは?

    NumPy から扱えるデータをファイルに保存するためのフォーマットとして HDF5 (Hierarchical Data Format) が利用されます。これを Python から扱うためには h5py を利用します。

    pip install h5py
    

    サンプルコード

    NumPy データの保存

    import h5py
    import numpy as np
    
    with h5py.File('sample.h5', 'w') as f:
        a = np.array([1,0])
        f.create_dataset('mydataset', data=a)
    

    読み込み

    import h5py
    f = h5py.File('sample.h5', 'r')
    
    f.keys() #=> [u'mydataset']
    dset = f['mydataset']
    
    dset.shape #=> (2,)
    dset.dtype #=> dtype('int64')
    dset[0] #=> 1
    dset[1] #=> 0
    
    dset.name #=> u'/mydataset'
    

    グループとデータセット

    グループで他のグループとデータセットを階層化して整理します。

    grp = f.create_group('mygroup')
    grp2 = grp.create_group('mygroup2')
    dset = grp2.create_dataset('mydataset3', (10,), dtype='i')
    
    dset.name #=> u'/mygroup/mygroup2/mydataset3'
    

    以下の二つは同じです。

    f['mygroup']['mygroup2']['mydataset3'] == f['mygroup/mygroup2/mydataset3'] #=> True
    

    属性

    グループおよびデータセットのメタ情報を属性として保存できます。

    grp.attrs['myattr'] = 1
    dset.attrs['myattr'] = 2
    

    画像の保存

    画像データを NumPy ndarray で用意して HDF5 に保存する場合は以下のようになります。ROI も属性としてデータセットに保存してみます。

    import h5py
    import matplotlib.image as mpimg
    
    with h5py.File('image.h5', 'w') as f:
        img = mpimg.imread('./myimage.png')
        dset = f.create_dataset('mydataset', data=img)
        dset.attrs['roi'] = ((0,0), (100,100))
    

    読み込んで表示してみます。

    import h5py
    from matplotlib import pyplot as plt
    
    f = h5py.File('image.h5', 'r')
    dset = f['mydataset']
    roi = dset.attrs['roi']
    part = dset[roi[0][0]:roi[1][0], roi[0][1]:roi[1][1]]
    plt.imshow(part)
    plt.show()
    

    0
    詳細設定を開く/閉じる
    アカウント プロフィール画像 (本文下)

    ハッカーイズム

    記事の執筆者にステッカーを贈る

    有益な情報に対するお礼として、またはコメント欄における質問への返答に対するお礼として、 記事の読者は、執筆者に有料のステッカーを贈ることができます。

    さらに詳しく →
    ステッカーを贈る コンセプト画像

    Feedbacks

    Feedbacks コンセプト画像

      ログインするとコメントを投稿できます。

      関連記事