web-dev-qa-db-ja.com

np.random.permutation with seed?

np.random.permutationでシードを使用したい

np.random.permutation(10, seed=42)

次のエラーが表示されます。

"permutation() takes no keyword arguments"

他にどうすればいいですか?ありがとう。

10
Rockbar

1行で必要な場合は、新しいRandomStateを作成し、そのpermutationを呼び出すことができます。

np.random.RandomState(seed=42).permutation(10)

これは、np.randomのシードを設定するよりも優れています。ローカライズされた効果しかありません。

24
Sebastian
_np.random.seed(42)
np.random.permutation(10)
_

np.random.permutation(10)を複数回呼び出して同じ結果を得たい場合は、np.random.seed(42)を呼び出すたびにpermutation()を呼び出す必要もあります。

例えば、

_np.random.seed(42)
print(np.random.permutation(10))
print(np.random.permutation(10))
_

異なる結果が生成されます。

_[8 1 5 0 7 2 9 4 3 6]
[0 1 8 5 3 4 7 9 6 2]
_

ながら

_np.random.seed(42)
print(np.random.permutation(10))
np.random.seed(42)
print(np.random.permutation(10))
_

同じ出力が得られます:

_[8 1 5 0 7 2 9 4 3 6]
[8 1 5 0 7 2 9 4 3 6]
_
13

前の行にシードを設定します

np.random.seed(42)
np.random.permutation(10)
2
James

次のように分類できます。

import numpy as np
np.random.seed(10)
np.random.permutation(10)

最初にランダムシードを初期化することにより、同じ順列が得られることが保証されます。

0
Danilo Pena