help(random.sample)
说“结果列表是选择顺序,这样所有子切片也将是有效的随机样本”
选择顺序是什么意思?如果没有选择顺序的要求,结果列表会如何?子切片怎么可能不是一个有效的随机样本?
更新据我了解,这意味着结果不会以任何方式排序。
答案 0 :(得分:2)
完整的帮助字符串是:
随机的样本(self,population,k)方法。随机实例 从群体序列中选择k个独特的随机元素。
返回包含来自总体的元素的新列表 让原始人口保持不变。结果列表是 在选择顺序中,所有子切片也将是有效随机的 样本。这允许抽奖获奖者(样本)被分割 成为大奖和第二名的获奖者(下属)。
人口中的成员不需要是可以清洗或独特的。如果 人口包含重复,然后每次出现都是可能的 选择样本。
要选择整数范围内的样本,请使用xrange作为参数。 这对于从a采样来说尤其快速且节省空间 人口众多:样本(xrange(10000000),60)
以抽奖为例;滚筒内滚动的所有门票都是population
,而k
是抽出的门票数量。绘制的所有故障单的集合是随机sample
的结果。
sample
没有排序,也没有以任何方式改变,它按照绘制顺序排列。如果你想象你去了一个抽奖活动,并且他们先抽了100张票,然后丢弃它们,然后开始抽取实际的票,那套中奖票仍然是sample
的{{1}}。 }。这相当于拍摄第一个较大的population
。
它的含义是,任何样本的任何子切片仍然是有效的随机样本。
回答你的问题;
选择顺序只是绘制值以组成样本的顺序。
无需确保选择顺序,可能会以某种方式对样本进行排序。
您可以想象以下代码创建一个确保选择顺序的随机样本:
sample
答案 1 :(得分:2)
random.sample(population, k)
给定population
序列,它会返回一个长度为k
的列表,其中包含从population
中选择的元素(或已选择)。 选择顺序是指 order ,其中选择了每个元素(随机)。因此,列表不按人口中的索引排序,而是按选择的方式排序。因此,返回列表的任何子片段也是人口的随机样本。
示例 -
>>> import random
>>> population=[1,2,3,4,5,6,7,8,9,10,11,12,]
>>> ls=random.sample(population,5)
>>> ls
[1, 11, 7, 12, 6]
返回的列表按照选择的顺序包含元素。因此,您可以在ls
上使用子切片而不会丢失随机性
>>> ls[:3]
[1, 11, 7]
如果未强制执行选择排序,您可以使ls
看起来像
[1,6,7,11,12]
然后,子切片将不是完全随机的,而是受切片长度的约束。例如。在长度为3的子切片中不会出现最大值(在这种情况下,这将是[1, 6, 7]
)