np.random.permutation与种子?

Roc*_*bar 12 python random numpy permutation

我想用种子np.random.permutation,比如

np.random.permutation(10, seed=42)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

"permutation() takes no keyword arguments"
Run Code Online (Sandbox Code Playgroud)

我该怎么办呢?谢谢.

Seb*_*ian 25

如果你想要它在一行中,你可以创建一个新的RandomState,并调用permutationon:

np.random.RandomState(seed=42).permutation(10)
Run Code Online (Sandbox Code Playgroud)

这比设置种子更好np.random,因为它只有局部效果.


Gio*_*ous 15

np.random.seed(42)
np.random.permutation(10)
Run Code Online (Sandbox Code Playgroud)

如果您想np.random.permutation(10)多次呼叫并获得相同的结果,您还需要在np.random.seed(42)每次呼叫时拨打电话permutation().

例如,

np.random.seed(42)
print(np.random.permutation(10))
print(np.random.permutation(10))
Run Code Online (Sandbox Code Playgroud)

会产生不同的结果:

[8 1 5 0 7 2 9 4 3 6]
[0 1 8 5 3 4 7 9 6 2]
Run Code Online (Sandbox Code Playgroud)

而

np.random.seed(42)
print(np.random.permutation(10))
np.random.seed(42)
print(np.random.permutation(10))
Run Code Online (Sandbox Code Playgroud)

会给出相同的输出:

[8 1 5 0 7 2 9 4 3 6]
[8 1 5 0 7 2 9 4 3 6]
Run Code Online (Sandbox Code Playgroud)