Python 中带替换的采样
-
在 Python 中使用
random.choices()
函数进行替换采样 -
在 Python 中使用
random.choice()
函数进行替换采样 -
在 Python 中使用
numpy.random.choice()
函数进行替换采样
抽样是指从给定序列中选择数据样本的过程。random
模块中有几个功能可用于从给定序列中选择样本。
numpy
包中还有一个 random
子模块,用于处理数组中的随机数。
我们可以使用 random.choice()
函数来选择单个随机元素。random.sample()
函数无需替换即可采样。
random.choices()
函数用于在 Python 中进行带替换采样。
本教程演示了如何在 Python 中获取带替换的示例。我们将从整数列表中选择样本。
在 Python 中使用 random.choices()
函数进行替换采样
Python 3.6 引入了 random.choices()
函数。此函数用于在 Python 中生成带替换的样本。
我们可以传递列表和获得最终样本所需的元素总数。结果以列表形式返回。
例如:
import random
lst = [5,8,9,6,2,3,1,0,11,12,10]
print(random.choices(lst, k = 5))
输出:
[1, 11, 10, 5, 10]
在上面的示例中,我们从 Python 中的列表创建了一个长度为 5 的带替换的采样。
我们还可以使用 weights
参数指定一些权重来进行选择。cum_weights
还可以根据累积权重进行选择。
权重在内部转换为累积权重。
在 Python 中使用 random.choice()
函数进行替换采样
如前几节所述,random.choice()
从提供的序列中选择一个随机元素。
我们可以运行 for
循环来生成一个包含随机选择元素的列表。由于该函数将在每个循环中运行,因此将在不知道先前选择的元素的情况下选择元素。
例如:
import random
lst = [5,8,9,6,2,3,1,0,11,12,10]
result = [random.choice(lst) for _ in range(5)]
print(result)
输出:
[2, 0, 0, 12, 6]
我们使用列表推导来创建一个列表并将随机选择的元素(由 random.choice()
函数生成)存储在该列表中。
在 Python 中使用 numpy.random.choice()
函数进行替换采样
numpy
包中有一个 random
子模块。我们可以使用 numpy.random.choice()
函数在 Python 中进行替换采样。
numpy.random.choice()
函数从一维 numpy
数组中选择给定数量的元素。最终结果在 numpy
数组中返回。
此函数接受一个名为 replace
的参数(默认情况下为 True
)。如果此参数更改为 False
,则返回样本而不进行替换。
我们将在下面的示例中使用此函数生成一个替换样本。
import numpy
lst = [5,8,9,6,2,3,1,0,11,12,10]
arr = numpy.array(lst)
print(numpy.random.choice(arr, 5))
输出:
[11 10 6 9 3]
最后,我们讨论了几种在 Python 中生成带替换样本的方法。random.choices()
函数是最直接的选项,但它仅适用于 Python 3.6 及更高版本。
对于以前的版本,我们可以使用 random.choice()
或 numpy.random.choice()
函数。
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn