numpy - `np.random.seed(number)` 中括号中的数字是什么意思?
问题描述
np.random.seed(0)
, np.random.seed(42)
, 和有什么区别np.random.seed(..any number)
。括号中数字的作用是什么?
解决方案
python
使用迭代Mersenne Twister算法生成伪随机数 [1]。种子只是我们开始迭代的地方。
需要明确的是,大多数计算机没有“真正的”随机性来源。有趣的是,“随机性”对如此多的应用程序如此有价值,而且很难获得(您可以购买专门用于此目的的专用设备)。由于很难生成随机数,但它们仍然是必要的,因此已经开发了许多、许多、许多、许多算法来生成非随机数,但看起来它们似乎是随机数。生成“看起来很随机”的数字的算法称为伪随机数生成器 (PRNG)。由于 PRNG 实际上是确定性的,因此它们不能简单地从以太中创建一个数字并让它看起来是随机的。. 事实证明,使用一些复杂的运算和模运算,我们可以输入一个输入,并得到另一个似乎与输入几乎或没有关系的数字。使用这种直觉,我们可以简单地将 PRNG 的先前输出用作下一个输入。然后我们得到一个数字序列,如果我们的 PRNG 是好的,它们似乎彼此没有关系。
为了开始我们的迭代 PRNG,我们需要一个初始输入。这个初始输入被称为“种子”。由于 PRNG 是确定性的,对于给定的种子,它将生成相同的数字序列。通常,有一个默认种子,它本身是随机的。最常见的是当前时间。但是,当前时间不是一个很好的随机数,因此这种行为有时会引起问题。如果您希望程序每次运行时都以相同的方式运行,您可以提供种子(0 是一个流行的选项,但完全是任意的)。然后,您会得到一系列随机数,但如果您将代码提供给某人,他们实际上可以完全重新创建程序的运行时,就像您在运行程序时所看到的那样。
推荐阅读
- sql - 如果满足另一个表中的条件,则显示表中的行
- amazon-web-services - AWS ElasticBeanstalk 从 Gitlab 注册表中提取 Docker 映像
- php - PHP json_decode 使用 Symfony 返回 null
- c - 没有“abs”或“if”的ASCII表中2个字符之间差异的绝对值
- javascript - 什么是成熟的承诺
- python - 在python pandas中将时间对象转换为日期时间格式
- php - 是否可以在标头中添加错误处理程序(“位置:”.$_SERVER[“HTTP_REFERER”]);在php中
- sql - 在 SQL 中的两个表之间创建外键
- python - 在 Keras 中使用 tf.batch_scatter_add
- arrays - 在使用 Vue-watch 监视的对象数组中,如何获取已更改对象的索引?