👻
【Python】【初心者】numpyで乱数を発生させるメソッドの整理
numpyで乱数を発生させるメソッド
特によく使うrand(),random_sample(),randint(),randn() について整理しました。
ざっくりまとめると、以下の通りです。
ひとつひとつ実際の動きを見ていきましょう
rand()
引数に何も指定しない場合、0以上1未満の乱数がスカラーで返ってきます。
np.random.rand()
出力値
0.11687868813774382
引数xを指定すると、乱数がx次元のベクトルで返ってきます。
np.random.rand(5)
出力値
array([0.42817233, 0.06407754, 0.59819277, 0.98643563, 0.35469029])
引数x,yを指定すると、乱数がx次元×y次元の行列で返ってきます。
np.random.rand(5,2)
出力値
array([[0.80340624, 0.19355833],
[0.69710716, 0.96601196],
[0.22048461, 0.37884308],
[0.22375278, 0.13003753],
[0.99764547, 0.81994001]])
random_sample()
引数に何も指定しない場合、0以上1未満の乱数がスカラーで返ってきます。
rand()と同じです
np.random.random_sample()
出力値
0.4483261487002377
引数xを指定すると、乱数がx次元のベクトルで返ってきます。
rand(x)と同じです
np.random.random_sample(5)
出力値
array([0.42973122, 0.92241316, 0.01998666, 0.52651084, 0.93452441])
引数(x,y)を指定すると、乱数がx次元×y次元の行列で返ってきます。
rand()と違って,タプルで指定する必要があります
np.random.random_sample((5,2))
出力値
array([[0.48341019, 0.44231109],
[0.67387778, 0.29545236],
[0.96660802, 0.47673148],
[0.90473489, 0.65761039],
[0.90910482, 0.22503467]])
randint()
引数xを指定すると、xの範囲内の整数の乱数を返します
引数xの指定が必要です。
np.random.randint(100)
出力値
39
第1引数に最小値x,第2引数に最大値y、第3引数にzを指定すると、x〜yの範囲内の整数の乱数をz個返します(z次元のベクトル)
np.random.randint(50,100,5)
出力値
array([65, 98, 85, 68, 58])
行列で取得する場合は、第3引数を()でくくって行列形式で入力します
np.random.randint(50,100,(5,2))
出力値
array([[52, 74],
[55, 99],
[59, 94],
[63, 72],
[52, 57]])
randn()
引数に何も指定しない場合、平均0・分散1の標準正規分布に従う乱数がスカラーで返ってきます。
np.random.randn()
出力値
-0.4339820081684717
引数xを指定すると、乱数がx次元のベクトルで返ってきます。
np.random.randn(5)
出力値
array([ 1.32869547, -1.00305495, -1.30708037, 0.12537492, -0.00227023])
引数x,yを指定すると、乱数がx次元×y次元の行列で返ってきます。
np.random.randn(5,2)
出力値
rray([[-0.8395241 , 1.02262407],
[-1.82382528, -0.90688112],
[ 0.91264836, 0.60627436],
[-0.77165503, -1.61145402],
[ 0.39865203, 1.94673226]])
Discussion