Numpy.randomのランダム性をシードし、それを再現できるようにするには、次のようにする必要があります。
_import numpy as np
np.random.seed(1234)
_
しかし、np.random.RandomState()
は何をしますか?
np.random...
への呼び出しが使用するシードを設定する場合は、np.random.seed
を使用します。
np.random.seed(1234)
np.random.uniform(0, 10, 5)
#array([ 1.9151945 , 6.22108771, 4.37727739, 7.85358584, 7.79975808])
np.random.Rand(2,3)
#array([[ 0.27259261, 0.27646426, 0.80187218],
# [ 0.95813935, 0.87593263, 0.35781727]])
クラスを使用して、グローバルなnumpy状態への影響を回避します。
r = np.random.RandomState(1234)
r.uniform(0, 10, 5)
#array([ 1.9151945 , 6.22108771, 4.37727739, 7.85358584, 7.79975808])
そして、以前と同じ状態を維持します。
r.Rand(2,3)
#array([[ 0.27259261, 0.27646426, 0.80187218],
# [ 0.95813935, 0.87593263, 0.35781727]])
次のコマンドで、「グローバル」クラスの状態を確認できます。
np.random.get_state()
そして、あなた自身のクラスインスタンスの:
r.get_state()
np.random.RandomState()
は、乱数ジェネレーターを構築します。 np.random
の独立した関数には影響しませんが、明示的に使用する必要があります。
>>> rng = np.random.RandomState(42)
>>> rng.randn(4)
array([ 0.49671415, -0.1382643 , 0.64768854, 1.52302986])
>>> rng2 = np.random.RandomState(42)
>>> rng2.randn(4)
array([ 0.49671415, -0.1382643 , 0.64768854, 1.52302986])
random.seed は、埋めるためのメソッドです random.RandomState コンテナ。
numpy docsから:
numpy.random.seed(seed=None)
ジェネレータにシードします。
このメソッドは、RandomStateが初期化されるときに呼び出されます。再度呼び出して、ジェネレータを再シードできます。詳細については、RandomStateを参照してください。
class numpy.random.RandomState
Mersenne Twister擬似乱数ジェネレーターのコンテナー。