[英]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.