NumPyで乱数を発生させる方法
今回はNumPyで乱数を発生させるやり方を説明します。
NumPyには乱数を発生させる関数がいくつかありますが、代表的なものを取り上げます。
random.rand
random.rand()は、0.0以上1.0未満の乱数を返します。
引数を使って配列にすることもできます。
np.random.rand([d0, d1, …, dn])
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
>>> import numpy as np >>> np.random.rand() 0.20640764665742795 >>> np.random.rand(1) array([0.64683279]) >>> np.random.rand(2, 3) array([[0.17353535, 0.28136211, 0.85053027], [0.82569536, 0.20120081, 0.54550124]]) >>> np.random.rand(3, 2) array([[0.01634371, 0.69777097], [0.93566826, 0.77756524], [0.92568812, 0.73233755]]) >>> np.random.rand(2, 3, 2) array([[[0.53270162, 0.78704171], [0.70343699, 0.82995453], [0.95421117, 0.86310449]], [[0.73751201, 0.12399459], [0.49800957, 0.69156956], [0.3246776 , 0.58706971]]]) |
random.randn
random.randn()は、正規分布からサンプルを作成します。
引数を使って配列にすることもできます。
np.random.randn([d0, d1, …, dn])
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
>>> import numpy as np >>> np.random.randn() -1.6288551062031509 >>> np.random.randn(1) array([0.93107224]) >>> np.random.randn(2, 3) array([[ 0.99295719, 0.13787246, -0.09917914], [-0.20524187, -0.15013841, 0.2756625 ]]) >>> np.random.randn(3, 2) array([[1.35503817, 0.3058443 ], [0.14517503, 1.2584678 ], [0.66701944, 2.08604367]]) >>> np.random.randn(2, 3, 2) array([[[-0.18256085, -1.53611256], [ 1.23644678, 0.26026649], [-1.48609913, -0.56734401]], [[-0.25311281, -0.9162089 ], [-0.27652988, 0.52602386], [ 1.34395691, -1.05306474]]]) |
random.randint
random.randint()は、指定した範囲の整数の乱数を返します。
random.randint(low[, high=None, size=None, dtype=int])
引数 | 内容 |
low | 最小の整数。引数が一つしかない場合は、0~指定した値未満の整数がランダムで返される |
high | 最大の整数。指定した整数未満の整数がランダムで返される |
size | 出力形状。配列を指定 |
dtype | データタイプ。デフォルトはint。int型('int32'、'uint64'など)のみ指定可能 |
1 2 3 4 5 6 |
>>> import numpy as np >>> np.random.randint(10) 6 >>> np.random.randint(0, 10, size=[2,3], dtype='int64') array([[0, 6, 5], [8, 5, 4]], dtype=int64) |
random.random
random.random()は、0.0以上1.0未満の乱数を返します。
引数を使って配列にすることもできまます。
なお、random.random()は、random_random_sample()のエイリアスです。
np.random.random([size=None])
1 2 3 4 5 6 7 8 |
>>> import numpy as np >>> np.random.random() 0.19680965165637587 >>> np.random.random(3) array([0.46528335, 0.94779473, 0.38599549]) >>> np.random.random([2,3]) array([[0.75413902, 0.56544401, 0.19654648], [0.03207016, 0.03393198, 0.61756133]]) |