📜  np.random.choice - Python (1)

📅  最后修改于: 2023-12-03 15:17:59.272000             🧑  作者: Mango

使用np.random.choice进行随机抽样 - Python

np.random.choice是NumPy库中用于生成随机次序的函数之一。这个函数可以从给定的数组中随机抽样。此外,它也可以在给定范围内生成随机整数。以下是关于np.random.choice的介绍和使用方法的详细信息。

语法

以下是np.random.choice的基本语法:

np.random.choice(a, size=None, replace=True, p=None)

参数:

  • a:一维数组或整数。如果是数组,那么从中进行抽样;如果是整数,则产生范围在[0,a)内的随机数字。
  • size:必须是整数或None。指示输出的随机样本的形状。
  • replace:可选,是否可替换。默认情况下,True表示可以进行抽样,即抽样后,抽样值仍然存在于原始数据中,而False在不替换的情况下进行抽样,这意味着在抽样过程中抽中的数据不会出现在下一个抽样中。
  • p: 可选,数组型。未提供,则从a中进行等概率抽样;否则,从提供的P中按相应概率抽样。
示例

以下是使用np.random.choice函数生成随机数据的示例:

import numpy as np

# 抽样数组中的元素
x = np.array([1, 2, 3, 4, 5, 6])
rand_x = np.random.choice(x, size=3, replace=False)

print(rand_x)

生成的输出将是可能不同的3个元素,因为'替换'为False,即在随机抽样过程中,原始数组中的元素不会重复出现。

import numpy as np

# 抽样整数
rand_integers = np.random.choice(10, size=5)

print(rand_integers)

在这个示例中,np.random.choice函数从0到9之间随机生成5个整数。此外,在这个示例中,因为参数“a”是一个整数,所以函数默认从[0,10)范围内生成随机整数。

import numpy as np

# 随机权重
w = [0.1, 0.1, 0.1, 0.2, 0.2, 0.3]
rand_w = np.random.choice(6, size=5, replace=True, p=w)

print(rand_w)

这个示例演示了如何生成随机权重。p参数接收的是一个数组,这个数组必须和a数组的大小相同,或者可以理解为是a数组中每个元素的权重。在这个示例中,从w数组中获得从0到5的随机整数。

结论

使用np.random.choice函数可以方便地进行随机抽样。我们可以从给定数组中选择我们想要的元素,或者可以生成随机整数。此外,我们还可以指定替换和随机权重等参数。