如何直接复制np.random结果?
How to replicate np.random result directly?
import numpy as np
np.seed(1)
a=np.random.randint(10)
b=np.random.randint(10)
我知道在设置随机种子后,每次我运行这段代码,a和b都会分别被初始化为某个固定值。
我的问题是:在一个新的运行中,如何不先生成a的值而直接生成b的值?
在我看来,我需要这样的东西:
import numpy as np
np.seed(1)
a = np.random.randint(10)
# DO SOMETHING to get some situation-specific information, something like a new seed
所以在新的 运行 中,我可以这样做:
# DO SOMETHING to load or set that situation-specific information
b = np.random.randint(10)
有什么办法吗?
IIUC,使用numpy.random.get_state
和set_state
:
import numpy as np
a = np.random.randint(10)
a
# 5
# Now get the current state
after_a = np.random.get_state()
b = np.random.randint(10)
b
# 8
# After some work...
np.random.set_state(after_a)
b = np.random.randint(10)
b
# 8
你可以只运行随机函数,不需要为a设置它。
第一次
np.random.randint(10)
# DO SOMETHING to load or set that situation-specific information
b = np.random.randint(10)
import numpy as np
np.seed(1)
a=np.random.randint(10)
b=np.random.randint(10)
我知道在设置随机种子后,每次我运行这段代码,a和b都会分别被初始化为某个固定值。
我的问题是:在一个新的运行中,如何不先生成a的值而直接生成b的值?
在我看来,我需要这样的东西:
import numpy as np
np.seed(1)
a = np.random.randint(10)
# DO SOMETHING to get some situation-specific information, something like a new seed
所以在新的 运行 中,我可以这样做:
# DO SOMETHING to load or set that situation-specific information
b = np.random.randint(10)
有什么办法吗?
IIUC,使用numpy.random.get_state
和set_state
:
import numpy as np
a = np.random.randint(10)
a
# 5
# Now get the current state
after_a = np.random.get_state()
b = np.random.randint(10)
b
# 8
# After some work...
np.random.set_state(after_a)
b = np.random.randint(10)
b
# 8
你可以只运行随机函数,不需要为a设置它。
第一次
np.random.randint(10)
# DO SOMETHING to load or set that situation-specific information
b = np.random.randint(10)