np.random.permutation与种子?

时间:2017-12-10 19:30:43

标签: python numpy random permutation

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

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

我收到以下错误:

"permutation() takes no keyword arguments"

我该怎么办呢?感谢。

4 个答案:

答案 0 :(得分:19)

如果您想将它放在一行中,可以创建一个新的RandomState,并在其上调用permutation

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

这比设置np.random的种子要好,因为它只会产生局部效果。

答案 1 :(得分:12)

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]

答案 2 :(得分:2)

在上一行中设置种子

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

答案 3 :(得分:0)

您可以将其细分为:

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

首先初始化随机种子,这将保证您获得相同的排列。