Python numpy.random.seed()的用途是什么?它有什么区别吗?

Python numpy.random.seed()的用途是什么?它有什么区别吗?,python,numpy,random,Python,Numpy,Random,我有一个名为“招生”的数据集 我试图在一个简单的数据集上执行保持验证。为了对数据集的索引执行排列,我使用以下命令: import numpy as np np.random.permutation(admissions.index) 在排列之前是否需要使用np.random.seed()?如果是这样,那么为什么以及np.random.seed(number)中的数字代表什么?您不需要在随机排列之前初始化种子,因为这已经为您设置好了。 根据以下文件: 参数: 种子:{None,int,array

我有一个名为“招生”的数据集

我试图在一个简单的数据集上执行保持验证。为了对数据集的索引执行排列,我使用以下命令:

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

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

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

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

种子的概念与随机数的产生有关。你可以阅读更多关于它的内容

为了将这个答案与(约翰科勒曼)对你的问题的评论结合起来,我想举一个例子:

>>> 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])
请注意,它已弃用,仅保留用于向后兼容。这是因为重新播种现有的随机数生成器(RNG)是不好的做法。如果您需要种子(例如,为了使计算可重复用于测试),请创建一个新的RNG:

将numpy导入为np
rng=np.random.default\u rng(seed=0)
out=随机变量(5)

在此处检查:如果您希望能够以完全相同的排列重复实验(例如为了调试目的),则需要设置一个可复制的种子。如果不需要重复,则可以跳过显式种子设定部分。如果确实为调试设置了显式种子,请在调试完成后将其删除。可能存在C.f。