Python3 – numpy.random – 乱数

ライブラリ

乱数を扱うには、numpy.randomライブラリが必要。

seed~乱数系列の指定

乱数の系列を固定したいときはseed()関数でシードを設定する。この設定をしないかシードにNoneを設定した場合は、実行ごとに乱数系列が変わる。

並べ替え

shuffle()

引数で与えた配列の要素をシャッフルする。元の配列を書き換え、戻り値はNoneとなる。

permutation()

引数で与えた配列の要素をシャッフルした結果の配列を返す。元の配列は書き換えられない。

permutation(n)の引数nに整数を指定すると、permutation(np.arange(n))と同じ効果を持つ。

確率分布

一様分布~[0, 1)

rand()

引数なしのrand()関数は[0, 1)の一様分布に従う乱数を1つ発生させる(random()関数でも同じ)。

引数を1つ指定すると、その個数の乱数を要素に持つ配列を返す(random()関数でも同じ)。

引数を2つ指定すると、その行数・列数の2次元配列の乱数を、引数がn1、n2、n3、・・・の場合、n1×n2×n3×・・・の多次元配列を返す。

random_sample()/random()

random_sample()は、引数が1つの場合はrand()と同じだが。配列の場合はリストやタプルで次数を与える。

random()はrandom_sample()と同じ。

一様整数乱数~任意の範囲の整数

randint()

1~3個の引数をとり、終値未満の整数乱数を返す。終値を含まないため、配列からランダムに要素を取り出したい時に便利。

  • 引数が1つ(n)の場合、[0, n)の範囲の整数乱数を1つ返す
  • 引数が2つ(m, n)の場合、[m, n)の範囲の整数乱数を1つ返す
  • 引数が3つ(m, n, s)の場合[m, n)の範囲の整数乱数s個を要素とする配列を返す

サイズをリストやタプルで指定した場合、それに対応した次元・要素数の多次元配列で乱数列を返す。

random_integers()

引数の構成はrandint()と同じだが、

  • 上限値を含む、[start, end]の範囲の整数乱数
  • 引数の意味はrandint()と同じ

正規分布

randn()~標準正規分布

平均が0、標準偏差が1の標準正規分布に従う乱数を発生させる。配列で結果を得たいときはrand()と同じように直接次数を指定する。

normal()~正規分布

normal(loc=0.0, scale=1.0, size=None)

locを平均、scaleを標準偏差とする正規分布に従う乱数を返す。

sizeに整数を指定すると、その個数の乱数を配列で返す。

sizeにリスト・タプルを指定すると、その形状の配列で乱数を返す。

locscaleに同じ次数の配列を指定すると、それらがブロードキャストされた結果に従う乱数が配列で返される。

exponential()~指数分布

指数分布。

exponential(lmd) – 指数分布
lmdは平均の逆数で、ポアソン過程でいう到着率、サービス率にあたる。

Tips

整数の乱数配列を生成する

整数の乱数配列を生成する方法はこちら

 

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です