2017-05-11 14 views
2

numpy乱数ジェネレータにPythonコードで2つの異なるシードを使用する方法はありますか?1つはコードの一部に使用し、もう1つはコードの残りの部分に使用しますか?Python複数のランダムシード

+0

a = np.random.mtrand.RandomState(1).randint(0,10、size =(5,2))... b = np.random.mtrand.RandomState(2).randint(0) 、10、size =(5,2))...試してみてください – NaN

答えて

6

あなたは、いくつかの異なるnp.random.RandomState Sを使用し、それらのメソッドを呼び出すことができます。

import numpy as np 

rng1 = np.random.RandomState(100) 
rng2 = np.random.RandomState(100) 

print(rng1.randint(0, 100, 1)) # [8] 
print(rng2.randint(0, 100, 1)) # [8] 

それはどちらも同じ結果が得られていることを示しているので、私は、両方に同じシード(100)を使用。

+0

私の以前のコメントは、ランダム状態が変更された場合、異なるが再現性のある結果を生むことを示すことは興味深いかもしれません。また、アクセス可能なディストリビューションはnumpyのヘルプトピックでもカバーされています。 – NaN

+0

@NaN私が従うことができるかどうかはわかりません。 'randint'を呼び出した後、あるいは状態の種を手動で変更した後に、異なる種族や状態を意味しますか? – MSeifert

+0

はい、同じシードを使用しました。私の例では異なるものが使用され、再現性のある結果が得られます。ケース8では、両方ともmとaとbが異なる値を持ちますが、プラスrandintは、ある種類のディストリビューションでしかありませんでした。他のものは便利です(普通、統一など)。 – NaN

関連する問題