random関数の使い方 numpy

numpy.random.rand()を使うと要素の値がランダム(0以上1未満)なArrayを宣言できる.

numpy_l = np.random.rand(2, 3)
print(numpy_l)
[[0.10496895 0.55167607 0.34584796]
 [0.34409647 0.19778302 0.13466426]]

randomモジュールにはrand()の他にもrandint()randn()がある.
randint()では指定した範囲の整数を生成でき,randn()では指定した分布に従う乱数を生成できる.

# サイコロを五回投げたときの結果
np.random.randint(1,7,5)
 
# 結果
array([2, 1, 6, 2, 6])
 
# もちろん多次元配列を生成することも可能
np.random.randint(1,7,(3,4))
 
# 結果
array([[4, 6, 3, 1],
[1, 5, 6, 6],
[3, 3, 4, 4]])

正規分布の中でもμ(平均値)=0、σ2(分散)=1の分布を標準正規分布と呼びます。Numpyで標準正規分布の乱数配列を生成するのはrondomモジュール内の【randn】メソッドです。

s1 = np.random.randn()
print(s1)
-0.4690374291384017
s10 = np.random.randn(10)
print(s10)
[ 0.25702137  0.397795    0.54809017 -0.07603311  0.15085285 -0.11272486
  0.25232319  0.48244184  0.89100164 -2.54745675]
s2_3 = np.random.randn(2,3)
print(s2_3)
[[-0.44054578 -2.46724828  0.40256177]
 [-0.20914594  0.8348336  -0.10013049]]

Seed による乱数の固定

numpy.random.seed()を引数seed(0以上の整数)を指定すると,生成する乱数を固定することができる.

np.random.seed(seed=73)
numpy_3 = np.random.rand(2,2)
print(numpy_3)

np.random.seed(seed=73) 2回目も直前と同じように指定しないとランダムになる
numpy_3 = np.random.rand(2,2)
print(numpy_3)
[[0.64268992 0.53862093]
 [0.51189798 0.61025723]]
[[0.64268992 0.53862093]
 [0.51189798 0.61025723]]

コメント

タイトルとURLをコピーしました