1. ホーム
  2. python

[解決済み] 一貫して同じランダムなnumpy配列を作成する

2023-01-14 11:19:27

質問

私は他の開発者が、-1,0,1のいずれかの値を持つ形状(100,2000)のnp配列を返すコードの一部を完成させるのを待っているところです。

その間に、私は同じ特性の配列をランダムに作成したいので、私の開発とテストで先手を打つことができます。処理を再実行するたびに値が変わり続ける配列に対してテストすることがないように、このランダムに作成される配列は毎回同じであることが望ましいということです。

このように配列を作成することができますが、毎回同じになるように作成する方法はありますか。オブジェクトを pickle して、unpickle することはできますが、他の方法があるのかどうか疑問に思っています。

r = np.random.randint(3, size=(100, 2000)) - 1

どのように解決するのですか?

乱数生成器に固定値をシードするだけです。

numpy.random.seed(42)

こうすれば、常に同じ乱数列が得られます。

この関数はグローバルなデフォルトの乱数生成器に種を蒔きます。 numpy.random の関数へのどんな呼び出しも、その状態を使用し、変更します。これは多くの単純なユースケースには適していますが、グローバルステートがもたらすすべての問題を伴うグローバルステートの一形態です。よりクリーンなソリューションについては、以下の Robert Kern の回答を参照してください。