1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

numpy.randomでの乱数生成が変わった(っぽい)

Last updated at Posted at 2021-10-18

kaggleをしていると見慣れない関数のpartyが夜通し開催されています。
その中で、numpy.randomでの乱数生成の方法が少し変わったぽいので忘れないうちに書いておきます。

従来

例えば、整数をランダムに呼び出したいならnp.random.randint(n, m)みたいな感じでした
正規表現ならnp.random.normal(loc=u, scale=s)みたいな感じでした(loc: 平均, scale:標準偏差)

現在

https://numpy.org/doc/stable/reference/random/generator.html

一応従来の方法も使えるんで、早急な対応が必要というわけでもなさそうですが、現在のnumpy側の推奨は

  • np.random.default_rng()でインスタンス化
  • このインスタンスから欲しい乱数を定義

という流れになったそうです。

簡単なコード例

print(np.random.normal(loc=10, scale=0.5))

rng = np.random.default_rng(seed=123)
print(rng.normal(loc=10, scale=0.5))

rng = np.random.default_rng()
print(rng.normal(loc=10, scale=0.5))

>>>10.498672723291794
>>>9.505439324826074
>>>9.296869256963326

ってな感じ。

個人的にはどっちが良いって言うのはないですが、インスタンス化の方が少しコードがスッキリしそうな気もします

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?