Generator.triangular – 三角分布から乱数配列を作成する方法

Generator.triangularは、三角分布から乱数配列を生成するジェネレータメソッドです。

三角分布は、左側が下限値、真ん中に最頻値、右側に上限値を持つ連続確率分布です。他の分布と違って、これらのパラメータが直接的に確率密度関数の形状を決定します。

三角分布は、分布がはっきりしないが、下限値・上限値・最頻値といった限定的な知識はわかっているというような問題に対してよく使われます。

このページでは三角分布から乱数配列を生成するGenerator.triangularについて解説します。

目次

1. 書式

Generator.triangular

書き方:

Generator.triangular(left, mode, right, size=None)

パラメーター:

left: float or array_like of floats
下限値
mode: float or array_like of floats
最頻値(left <= mode <= right)
right: float or array_like of floats
上限値
size: int or tuple of ints, optional
出力する配列のshape。(m, n, k)を渡すと、shape(m, n, k)の乱数配列を生成する。デフォルト値Noneで、left, right, modeがスカラーの場合は1つの乱数の値を返す。それ以外の場合はnp.broadcast(left, mode, right).sizeの乱数配列を返す。

戻り値: 

out: ndarray or scalar
パラメータを設定した三角分布から乱数配列を生成。

Notes

三角分布の確率密度関数は次の通りです。

2. サンプルコード

それでは、サンプルコードを見ていきましょう。

まずは、random.default_rng コンストラクタでジェネレータオブジェクトを作成します。『numpy.random.default_rng – 乱数生成のためのジェネレータオブジェクトの作成』に目を通しておいてください。

In [1]:
import numpy as np
rng = np.random.default_rng()
rng
Out[1]:
Generator(PCG64) at 0x7FD3A426AE58

こうして作成したジェネレータオブジェクト rng に対して、Generator.triangularを呼び出すことによって、三角分布から乱数配列を取得することができます。

第一引数に下限値left、第二引数に最頻値mode、第三引数に上限値right、第四引数に配列のsizeを渡します。

In [2]:
rng.triangular(-3, 0, 8, 5)
Out[2]:
array([ 4.14423599,  0.18675675,  3.59061774, -0.66772878,  5.18383604])

この乱数配列を取得して、ヒストグラムを描画してみましょう。

In [3]:
import matplotlib.pyplot as plt
h = plt.hist(rng.triangular(-3, 0, 8, 100000), bins=200,
             density=True)
plt.show()

3. まとめ

Generator.triangularは三角分布から乱数配列を生成するジェネレータメソッドです。

以前は、numpy.random.triangular関数が使われていましたが、ジェネレータメソッドを使うようにしましょう。こちらの方が、処理が高速で、大量のデータを扱う科学技術計算に適しているからです。



よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

目次
閉じる