首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何消除numpy种子()的影响?

如何消除numpy种子()的影响?
EN

Stack Overflow用户
提问于 2018-04-22 14:00:59
回答 1查看 6.6K关注 0票数 15

我想在我的程序的第一部分使用np.random.seed(),在第二部分取消它。再一次,

  • 在python文件的第一部分中,我希望在每次执行时生成相同的随机数。
  • 在第二部分中,我希望在每次执行时生成不同的随机数。
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-22 14:04:06

在第一部分中,用常量初始化种子,例如0:

代码语言:javascript
运行
复制
numpy.random.seed(0)

在第二部分中,用时间初始化种子:

代码语言:javascript
运行
复制
import time
t = 1000 * time.time() # current time in milliseconds
np.random.seed(int(t) % 2**32)

(种子必须介于0至2**32 -1之间)

注意:通过调用不带参数的np.random.seed() (即新的(伪)-unpredictable序列),可以获得类似的效果。

每次用相同的常量初始化种子时,都会得到相同的数字序列:

代码语言:javascript
运行
复制
>>> 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]

因此,用当前的毫秒数进行非initalizing处理会给出一些伪随机序列。

票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49966770

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档