Rもたいして使いこなせてないのにPythonの勉強を始めてみました。色々と素晴らしいチュートリアルはありそうですが、目移りしてしまうので公式チュートリアルを拾い読みしていきます。
今回もNumPy公式チュートリアルの "NumPy: the absolute basics for beginners"を読んでいきます。
前回:
乱数の生成
初期条件となる配列を決めるときなど、要素をランダムに決めたいときがあります。
ここではNumPyライブラリのrandomモジュール内にある、default_rng( )
という関数使って乱数を生成する方法を見ていきます。
default_rng( )
は乱数発生器を作成する関数で、seed
で乱数シード(使用する乱数表)を指定できます。
例えば、次のコードではrng
という名前の乱数発生器が作成(= インスタンス化)されました。
rng = np.random.defalut_rng(seed=123)
このrng
には色々な乱数を発生させるメソッドが備わっています。例えばrng.random( )
で0.0以上1.0未満の浮動小数点数を発生させます。
rng.random( ) # 出力: 0.6823518632481435
他にチュートリアルで紹介されているものは、
rng.integers( )
:一様分布から整数を生成rng.normal( )
:正規分布に従う浮動小数点数を生成rng.poisson( )
:ポアソン分布に従う非負整数を生成
がありました。
乱数を要素に持つ指定した形状の配列を作成する
次のようにsize
で形状を指定します。
rng.random(size=(3,2)) # 出力: array([[0.05382102, 0.22035987], [0.18437181, 0.1759059 ], [0.81209451, 0.923345 ]])
おわりに
今回学んだこと:
- 乱数生成の方法
- 関数もインスタンスとして作成されることが分かった(これに満足したため分量は少なめ)
チュートリアルは読んだけど取り上げなかったもの:
np.ones( )
:全要素が1の行列を作成する関数(初回にも登場)。np.zeros( )
:全要素が0の行列を作成する関数(初回にも登場)。
次回:
参考資料
- default_rng( )が何を作成しているのか、私にも分かりやすい説明でした。
- np.random.default_rng( )で使用可能なメソッドがまとめられています。