繁体   English   中英

numpy.random.seed() 有什么用,有什么区别吗?

[英]What is the use of numpy.random.seed() Does it make any difference?

我有一个名为“admissions”的数据集。

我正在尝试对一个简单的数据集进行坚持验证。 为了对数据集的索引进行排列,我使用以下命令:

import numpy as np
np.random.permutation(admissions.index)

我需要在排列之前使用np.random.seed()吗? 如果是这样,那么np.random.seed(number)中的数字为什么以及代表什么?

您不需要在随机排列之前初始化种子,因为这已经为您设置好了。 根据RandomState的文档:

参数:
种子:{None,int,array_like},可选的随机种子初始化伪随机数生成器。 可以是整数、任意长度的整数数组(或其他序列)或 None(默认值)。 如果种子为无,则 RandomState 将尝试从 /dev/urandom(或 Windows 模拟)读取数据(如果可用)或从时钟种子读取数据。

种子的概念与随机数的生成有关。 您可以在此处阅读更多相关信息。

为了将此答案与评论(来自 JohnColeman)整合到您的问题中,我想提一下这个例子:

>>> numpy.random.seed(0)
>>> numpy.random.permutation(4)
array([2, 3, 1, 0])
>>> numpy.random.seed(0)
>>> numpy.random.permutation(4)
array([2, 3, 1, 0])

请注意, np.random.seed已弃用,仅保留用于向后兼容。 这是因为重新播种现有的随机数生成器 (RNG) 是不好的做法。 如果您需要种子(例如,使计算可重现以进行测试),请创建一个新的 RNG:

import numpy as np


rng = np.random.default_rng(seed=0)
out = rng.random(5)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM