Jupyter notebook(Python3)を使ってみようと思っても慣れていないうちは、どうしても処理に躓いてしまうものです。
例えば、Pythonのnumpy機能においてサンプルデータを作成したいときがありますよね。このような場面において一葉乱数や整数のみの乱数を発生させたり、その乱数の配列を一次元や2次元に指定したりするにはどのように対処すればいいのか理解していますか。
ここでは、このpython(numpy)にて乱数を発生させるための各種方法について解説していきます。
numpy(python)にて一様乱数を発生させる【一次元配列】
まずは、numpyのインポートと一次元配列かつ0~1の範囲に含まれる1個の乱数を発生させてみます。
以下のサンプルコードを入れてみましょう。
x = np.random.rand()
x
これで一様乱数における一つの乱数ができます。
()内に数値を入れることで、一次元配列の乱数の個数が設定されます。
以下で100個の0~1の一様乱数を作成してみましょう。
x = np.random.rand(100)
x
このようにpythonの拡張モジュールであるnumpyを用いると容易に乱数を作ってくれます。
範囲指定して一様乱数を発生させる【numpy(python)】
なお数値範囲を指定したい場合には、以下のよう最後に*範囲 + 開始数値と入れるといいです。
以下の具体例では、0~1ではなく10~30(つまり10+20)と範囲指定した一様な乱数を8個生成しています。
x = np.random.rand(8)* 20 + 10
x
numpyにて整数の乱数を発生させる【一次元配列】
なお、一様乱数ではなく「整数」に指定して乱数を生成するには、randint関数を使います。
また、一様乱数とは数値の入れ方が若干違うのに注意でしましょう。
と入れると個数が10個ではなく、0~10における範囲で乱数を1個発生させることとなります。
正規分布に従う乱数を発生させる【標準正規分布】
なお、数値範囲だけではなく、各分布に従う乱数を発生させることも可能です。
代表的な統計分布の正規分布(標準正規分布)ではrandn関数を使うといいです。こちらは一様関数と使い方が同じといえます。
x = np.random.randn(10)
x
で、標準正規分布に従う乱数が10個分生成されるのです。
Numpy(pyhon)で2次元配列の乱数を発生させる
上では一次元の配列の乱数発生方法を確認しました。
続いてnumpy(python)における2次元配列(行列)での乱数データを作成させていきましょう。
一様乱数や正規分布に従う場合の2次元の配列の乱数
x = np.random.rand(5,8)
x
2次元配列の場合では、rand関数やrandn関数内の()内に二つの数値を入れるといいです。上では5行8列での表示となります。
整数の場合の2次元配列の乱数
2次元であっても、整数の場合のみ対応が若干違います。
整数のrandint関数では最初の2項目は数値範囲の指定となるため、3つ目の個数を選ぶ段階で、さらに2次元配列の数値を入れるといいです。
x = np.random.randint(0,10,(2,4))
x
と入れると以下のように、0~10の数値で2行4列の数値が出力されることとなるのです。
※
まとめ numpy(python)にて乱数(一様乱数など)を発生させる方法【一次元配列や2次元の配列や整数
ここでは、jupyternotebook(python)のnumpy機能によって乱数(一様乱数など)を発生させる方法【一次元配列や2次元の配列や整数【について解説しました。
基本的には、
・import numpy as npにてnumpyモジュールのインポート
・一様乱数ではrand関数
・整数ではrandint関数
・標準正規分布ではrandn関数
を使っていくといいです。
各種numpyを始めと下pythonにおける対処方法を理解して、より業務を効率化させていきましょう。
コメント