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

Mai*_*lam 3 python random numpy

我有一个名为"admissions"的数据集.

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

import numpy as np
np.random.permutation(admissions.index)
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*kon 5

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

参数:
seed:{None,int,array_like},可选随机种子初始化伪随机数生成器.可以是整数,任意长度的整数数组(或其他序列),也可以是None(默认值).如果seed为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])
Run Code Online (Sandbox Code Playgroud)