ねこすたっと

ねこの気持ちと統計について悩む筆者の備忘録的ページ。

チュートリアル拾い読み (4):NumPy公式チュートリアル (4/5) [Python]

Rもたいして使いこなせてないのにPythonの勉強を始めてみました。色々と素晴らしいチュートリアルはありそうですが、目移りしてしまうので公式チュートリアルを拾い読みしていきます。

今回もNumPy公式チュートリアルの "NumPy: the absolute basics for beginners"を読んでいきます。

前回:

necostat.hatenablog.jp

乱数の生成

初期条件となる配列を決めるときなど、要素をランダムに決めたいときがあります。 ここでは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の行列を作成する関数(初回にも登場)。

次回:

necostat.hatenablog.jp

参考資料

  • default_rng( )が何を作成しているのか、私にも分かりやすい説明でした。

qiita.com

  • np.random.default_rng( )で使用可能なメソッドがまとめられています。

www.headboost.jp