我想使用
numpy.random
运行一些代码并跟踪种子是什么,以便如果输出很有趣,我可以重新创建并使用随机生成的实例。因此,我希望设置涉及像这样的东西
import numpy as np
s = np.random.randint(10000000000)
print(s)
np.random.seed(s)
### remainder of code
所以代码仍然随机运行,但我也保留了种子
s
。 10000000000
的值是任意选择的; numpy.random
的播种规模是多少?例如种子都是相同的模 2^32 吗?
使用 numpy.random 生成随机数时,最好设置一个种子值,以便在需要时可以重现同一组随机数。种子可以是任意非负整数值,不需要用很大的值
一般情况下,0到2^32-1范围内的值常用作种子。要记住的重要一点是,相似的种子值将产生彼此相似的随机数序列。然而,种子之间的差异通常很小,所以无关紧要。
因此,您可以将 numpy.random 的种子设置为任意非负整数值,通常使用 0 到 2^32-1 范围内的值。
就个人而言,我会使用时间作为种子或 SHA-256,因为它是一个标准而不仅仅是一个 32 位整数,这里是一个如何使用时间的示例,具体取决于您的用例。
import numpy as np
import time
# Use current time as seed value
s = int(time.time())
print("Seed value:", s)
np.random.seed(s)
# Generate random numbers