次回より『ヒデログ』とご検索ください

【Python入門】3分で分かるNumpy(random)で乱数の生成方法

乱数の作り方

Numpyの関数にrandomがあり、その中に複数の乱数生成のメソッドがあります。それを利用して乱数を生成します。

一様乱数

numpy.random.rand()で[0,1)の一様乱数を戻り値とする。引数に数値を設定することで配列や行列の一様乱数を戻り値となる。

numpy.random.rand([d0=1,d1,…,dn])となっており、d0,d1…,dnは省略可能。

from numpy.random import *
import matplotlib.pyplot as plt

# [0,1)の乱数を戻り値とする
rand()
>>0.7300751971802529

# 配列で値を返す
rand(3)
>>array([0.60549726, 0.26904943, 0.09280402])

# 2x3の行列で一様乱数を返す
rand(2,3)
>>array([[0.60640273, 0.96295348, 0.84672849],
       [0.15994035, 0.04833412, 0.20623928]])


# 一様乱数を10,000個生成
rnd=rand(10000)

# 100本のヒストグラムを作成
plt.hist(rnd, bins=100)   
plt.show()

uniform rand

標準正規乱数

期待値0、標準偏差1の正規乱数を生成する
numpy.random.randn([d0=1,d1,…dn])、d0,d1,…dnはオプションで宣言でき次元を設定できる

from numpy.random import *
import matplotlib.pyplot as plt

# 標準正規分布で乱数を1万個生成
rnd = randn(10000)        
plt.hist(rnd, bins=100) 
plt.show()

標準正規乱数

正規乱数

numpy.random.normal(μ=0.0,σ=1.0,[d0=1,d1,…,dn])
期待値μ、標準偏差σの正規乱数を生成する。標準正規乱数と同様、d0,d1,…dnはオプションで宣言でき次元を設定できる

from numpy.random import *
import matplotlib.pyplot as plt
# 平均5、標準偏差10の正規乱数を生成
rnd=normal(5,10,10000) 
plt.hist(rnd, bins=100)
plt.show()  

正規乱数

対数正規乱数

numpy.random.lognormal(μ=0.0,σ=1.0,[d0=1,d1,…,dn])
期待値μ、標準偏差σの対数正規乱数を生成する。標準正規乱数と同様、d0,d1,…dnはオプションで宣言でき次元を設定できる

from numpy.random import *
import matplotlib.pyplot as plt
# 平均2、標準偏差0.5の対数正規乱数を生成
rnd=lognormal(2,0.5,10000) 
plt.hist(rnd, bins=100)
plt.show()  

対数正規乱数

まとめ

一様乱数と標準正規乱数、正規乱数、対数正規乱数の作成方法を紹介しました。

コメントを残す

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