はじめに
np.random.normalで作成した正規分布のデータのヒストグラムを作成して、そのヒストグラムから再度データを作成する方法について説明する。
コード

解説
モジュールのインポートなど
バージョン
正規分布データの生成
np.random.normal(0,10,10000)で平均0標準偏差10の正規分布に従うデータを10000個作成する。
np.histogram(data, bins=100)でヒストグラムデータを作成する。図示すると以下のようになる。

ヒストグラムからのデータ再構築
最初にヒストグラムが0より大きい配列を準備する。この際にbinsには幅の半分を加算しておく。
その後np.ones(histo_re[i])で各ヒストグラムの値の数だけ要素が1の配列を作成し、それにbins_reをかけることでデータを得る。これらのデータを作成した空のnp.arrayに流し込んでいく。
再構築した配列の形状と要素種は以下の通りとなる。
再ヒストグラム化
再構築したデータを再びヒストグラム化して表示すると以下のようになる。

参考
numpy.histogram — NumPy v2.2 Manual
numpy.random.normal — NumPy v2.2 Manual
numpy.ones — NumPy v2.2 Manual
コメント