【发布时间】:2018-05-24 08:49:40
【问题描述】:
我想使用带有np.random.permutation 的种子,比如
np.random.permutation(10, seed=42)
我收到以下错误:
"permutation() takes no keyword arguments"
我还能怎么做呢?谢谢。
【问题讨论】:
标签: python numpy random permutation
我想使用带有np.random.permutation 的种子,比如
np.random.permutation(10, seed=42)
我收到以下错误:
"permutation() takes no keyword arguments"
我还能怎么做呢?谢谢。
【问题讨论】:
标签: python numpy random permutation
在上一行设置种子
np.random.seed(42)
np.random.permutation(10)
【讨论】:
np.random.seed(42)
np.random.permutation(10)
如果您想多次调用np.random.permutation(10) 并获得相同的结果,您还需要在每次调用permutation() 时调用np.random.seed(42)。
例如,
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]
【讨论】:
你可以把它分解成:
import numpy as np
np.random.seed(10)
np.random.permutation(10)
通过首先初始化随机种子,这将保证您获得相同的排列。
【讨论】:
如果你想在一行中,你可以创建一个新的RandomState,然后在上面调用permutation:
np.random.RandomState(seed=42).permutation(10)
这比设置np.random 的种子要好,因为它只会产生局部效果。
【讨论】: