Python中的random.sample()方法是什么?
我想了解一下 random.sample()
这个方法的用途,它能给我们什么?什么时候应该使用它,还有一些使用的例子。
4 个回答
在编程中,有时候我们需要让程序做一些事情,比如在特定的条件下执行某段代码。这个过程就像给程序下达命令,告诉它在什么情况下该做什么。
比如说,如果你想让程序在用户输入的数字大于10时,显示一条消息,你就需要用到“条件语句”。这就像是在问:“如果这个条件成立,我就做这个事情。”
条件语句可以帮助我们控制程序的行为,让它更智能。通过这些语句,程序可以根据不同的情况做出不同的反应。
总之,条件语句是编程中非常重要的工具,它让我们的程序能够根据实际情况做出决策。
from random import *
lst1 = sample(range(0, 1000), 100)
lst2 = sample(range(0, 1000), 100)
print(lst1)
print(lst2)
print(set(lst1).intersection(set(lst2)))
random.sample(population, k)
这个功能是用来从一个总体中随机抽取长度为 'k'
的样本。它会返回一个长度为 'k'
的列表,里面的元素都是从总体中独特选择出来的。
它返回的是一个新列表,原来的总体不会被改变,而且结果列表的顺序是按照选择的顺序排列的,这样所有的子切片也会是有效的随机样本。
我这里举个例子,展示如何随机分割一个数据集。基本上这是一个函数,你可以把 x_train(总体)
作为参数传入,然后返回数据的 60%
的索引,作为 D_test
。
import random
def randomly_select_70_percent_of_data_from_1_to_length(x_train):
return random.sample(range(0, len(x_train)), int(0.6*len(x_train)))
random.sample()
这个函数也可以用在文本上。
举个例子:
> text = open("textfile.txt").read()
> random.sample(text, 5)
> ['f', 's', 'y', 'v', '\n']
\n 这个符号也被当作一个字符来看,所以它也可能会被返回。
如果你先用分割方法处理文本文件,那么你可以用 random.sample()
来随机返回一些单词。
再举个例子:
> words = text.split()
> random.sample(words, 5)
> ['the', 'and', 'a', 'her', 'of']
根据文档的说明:
random.sample(population, k)
这个函数会从给定的序列中随机选出k个独特的元素,返回一个长度为k的列表。它用于不重复的随机抽样。
简单来说,它会从一个序列中随机挑选出k个不重复的元素,形成一个样本:
>>> import random
>>> c = list(range(0, 15))
>>> c
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
>>> random.sample(c, 5)
[9, 2, 3, 14, 11]
random.sample
也可以直接从一个范围内使用:
>>> c = range(0, 15)
>>> c
range(0, 15)
>>> random.sample(c, 5)
[12, 3, 6, 14, 10]
在3.11版本之前,random.sample
也可以和集合一起使用:
>>> c = {1, 2, 4}
>>> random.sample(c, 2)
[4, 1]
不过,random.sample
不支持任意的迭代器:
>>> c = [1, 3]
>>> random.sample(iter(c), 5)
TypeError: Population must be a sequence. For dicts or sets, use sorted(d).
在3.9版本中,增加了counts
参数:
可以逐个指定重复的元素,或者使用可选的仅限关键字的counts参数。例如,sample(['red', 'blue'], counts=[4, 2], k=5)等同于sample(['red', 'red', 'red', 'red', 'blue', 'blue'], k=5)。