理解 np.random.Generator.choice() 中 `shuffle` 的作用

问题描述 投票:0回答:1

numpy 的

random.Generator.choice
函数的文档中,参数之一是
shuffle
,默认为
True

文档指出:

随机播放布尔值,可选

不放回取样时样品是否被打乱。默认值为 True,False 提供加速。

没有足够的信息让我弄清楚这意味着什么。我不明白为什么我们会在已经适当随机的情况下进行洗牌,并且我不明白为什么如果产生有偏差的样本,我会选择不洗牌。

如果我将

shuffle
设置为
False
我仍然会得到随机(独立)样本吗?我也很想了解为什么我想要默认设置
True

python numpy random
1个回答
0
投票

无论您是否选择

shuffle
,您仍然会获得随机选择。但是,如果您选择
shuffle=False
,则可能的排序分布并不均匀。当选择的项目数等于项目数时,最容易看到这一点:

import numpy as np
rng = np.random.default_rng()
x = np.arange(10)
rng.choice(x, 10, replace=False, shuffle=False)
# array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
rng.choice(x, 10, replace=False, shuffle=True)
# array([8, 1, 3, 9, 6, 5, 0, 7, 4, 2])

如果减少使用

shuffle=False
选择的项目数量,您会发现在
x
中较早出现的项目往往会在输出中较早出现。

© www.soinside.com 2019 - 2024. All rights reserved.