Generator.geometricは、幾何分布から乱数配列を生成するジェネレータメソッドです。
ベルヌーイ試行は、取り得る結果が成功か失敗かの2つのみであり、各試行において成功の確率が同じであるランダム試行です。例として、コイン投げが挙げられます。そして幾何分布は、ベルヌーイ試行を繰り返して初めて成功させるまでの試行回数Xの分布です。
このGenerator.geometricについて解説していきます。
1. 書式
書き方:
Generator.geometric(p, size=None)
パラメーター:
p: float or array_like of floats 個々の試行における成功確率 |
size: int or tuple of ints, optional 出力する配列のshapeを指定する。デフォルト値のNoneの場合で、かつ、pがスカラーの場合、1つの乱数の値を返す。それ以外の場合は、np.array(p).sizeの乱数を生成する。 |
戻り値:
out: ndarray or scalar パラメータを設定した幾何分布からの乱数を出力する。 |
2. サンプルコード
それでは、サンプルコードを見ていきましょう。
まずは、random.default_rng コンストラクタでジェネレータオブジェクトを作成します。『numpy.random.default_rng – 乱数生成のためのジェネレータオブジェクトの作成』に目を通しておいてください。
import numpy as np
rng = np.random.default_rng()
rng
こうして作成したジェネレータオブジェクト rng に対して、Generator.geometricを呼び出すことによって、幾何分布から乱数配列を取得することができます。
その際、第一引数には1試行当たりの成功確率、第二引数には配列のsizeを渡します。
以下のサンプルコードでは、成功確率35%のベルヌーイ試行を10000回行った時の、それぞれの試行で初めて成功するまでの回数が出力されています。
rng.geometric(0.35, 10000)
最初の試行で成功した数を使って計算をすると、成功確率35%であることが確認できます。
z = rng.geometric(0.35, 10000)
(z ==1).sum()/10000
3. まとめ
以上の通り、Generator.geometricは、幾何分布から乱数配列を生成するジェネレータメソッドです。
これまでは、numpy.random.geometric関数が使われていましたが、今後はこのジェネレータメソッドを使うようにしましょう。こちらの方が、処理が遥かに高速なので、大量のデータを扱う科学技術計算に適しています。
コメント