如何取消numpy seed()的效果?
How to cancel the effect of numpy seed()?
我想在程序的第一部分使用 np.random.seed() 并在第二部分取消它。
同样,
- 在我的 python 文件的第一部分,我希望在每次执行时生成相同的随机数
- 在第二部分,我希望在每次执行时生成不同的随机数
在第一部分用常量初始化种子,例如0:
numpy.random.seed(0)
第二部分用时间初始化种子:
import time
t = 1000 * time.time() # current time in milliseconds
np.random.seed(int(t) % 2**32)
(种子必须介于 0 和 2**32 - 1 之间)
注意:您可以通过不带参数调用 np.random.seed()
获得类似的效果,即一个新的(伪)不可预测的序列。
每次用相同的常量初始化种子时,都会得到相同的数字序列:
>>> np.random.seed(0)
>>> [np.random.randint(10) for _ in range(10)]
[5, 0, 3, 3, 7, 9, 3, 5, 2, 4]
>>> [np.random.randint(10) for _ in range(10)]
[7, 6, 8, 8, 1, 6, 7, 7, 8, 1]
>>> np.random.seed(0)
>>> [np.random.randint(10) for _ in range(10)]
[5, 0, 3, 3, 7, 9, 3, 5, 2, 4]
因此用当前的毫秒数初始化会给你一些伪随机序列。
我想在程序的第一部分使用 np.random.seed() 并在第二部分取消它。 同样,
- 在我的 python 文件的第一部分,我希望在每次执行时生成相同的随机数
- 在第二部分,我希望在每次执行时生成不同的随机数
在第一部分用常量初始化种子,例如0:
numpy.random.seed(0)
第二部分用时间初始化种子:
import time
t = 1000 * time.time() # current time in milliseconds
np.random.seed(int(t) % 2**32)
(种子必须介于 0 和 2**32 - 1 之间)
注意:您可以通过不带参数调用 np.random.seed()
获得类似的效果,即一个新的(伪)不可预测的序列。
每次用相同的常量初始化种子时,都会得到相同的数字序列:
>>> np.random.seed(0)
>>> [np.random.randint(10) for _ in range(10)]
[5, 0, 3, 3, 7, 9, 3, 5, 2, 4]
>>> [np.random.randint(10) for _ in range(10)]
[7, 6, 8, 8, 1, 6, 7, 7, 8, 1]
>>> np.random.seed(0)
>>> [np.random.randint(10) for _ in range(10)]
[5, 0, 3, 3, 7, 9, 3, 5, 2, 4]
因此用当前的毫秒数初始化会给你一些伪随机序列。