unj*_*nj2 6 python random numpy
据我所知,语法是
In[88]: np.random.seed(seed=0)
In[89]: np.random.rand(5) < 0.8
Out[89]: array([ True, True, True, True, True], dtype=bool)
In[90]: np.random.rand(5) < 0.8
Out[90]: array([ True, True, False, False, True], dtype=bool)
Run Code Online (Sandbox Code Playgroud)
但是,当我运行时rand(),我会得到不同的结果.是否有种子功能缺少的东西?
想想发电机:
def gen(start):
while True:
start += 1
yield start
Run Code Online (Sandbox Code Playgroud)
这将连续从您插入生成器的数字中提供下一个数字.有了种子,它的概念几乎相同.我尝试设置一个变量来生成数据,并且仍保存其中的位置.让我们付诸实践:
>>> generator = gen(5)
>>> generator.next()
6
>>> generator.next()
7
Run Code Online (Sandbox Code Playgroud)
如果要重新启动,还需要重新启动生成器:
>>> generator = gen(5)
>>> generator.next()
6
Run Code Online (Sandbox Code Playgroud)
与numpy对象相同的想法.如果您希望随着时间的推移获得相同的结果,则需要使用相同的参数重新启动生成器.
>>> np.random.seed(seed=0)
>>> np.random.rand(5) < 0.8
array([ True, True, True, True, True], dtype=bool)
>>> np.random.rand(5) < 0.8
array([ True, True, False, False, True], dtype=bool)
>>> np.random.seed(seed=0) # reset the generator!
>>> np.random.rand(5) < 0.8
array([ True, True, True, True, True], dtype=bool)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2202 次 |
| 最近记录: |