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]]
コメント