Numpy random.choice() 函数
Numpy random.choice() 函数从给定的一维数组或列表中生成随机样本。它允许从指定的数组或序列中随机抽取元素,可以是放回式的,也可以是放回式的。此函数常用于模拟、随机数据生成和随机采样任务。
如果概率数组 p 的总和不为 1,则 numpy.random.choice() 函数会引发 ValueError。
语法
以下是 Numpy random.choice() 函数的语法 -
numpy.random.choice(N, size=None, replace=True, p=None)
参数
以下是 Numpy random.choice() 函数的参数 -
- N:一维数组或int。如果为整数,则从 range(N) 中选择。
- size(可选):输出形状。如果为 None,则返回单个值。如果为整数,则返回一维数组。如果为元组,则返回多维数组。
- replace(可选):布尔值。如果为 True(默认值),则进行放回抽样;如果为 False,则进行不放回抽样。
- p(可选):与 N 中每个元素关联的概率的一维数组。如果未提供,则假定所有元素的概率相等。
返回值
该函数从给定的一维数组中返回一个随机样本,或从 range(N) 中返回一个整数值。
示例
以下是使用 Numpy random.choice() 从列表中随机选择单个元素的基本示例 -
import numpy as np array = [10, 20, 30, 40, 50] random_choice = np.random.choice(array) print("Random Choice:", random_choice)
输出
以下是上述代码的输出−
随机选择:3
示例:指定大小的随机选择
使用 numpy.random.choice() 函数,我们还可以通过指定 size 参数来选择多个随机元素。该参数可以是单个元素或元组。当我们在元组中指定大小时,它将生成多维数组。
Size 为整数值
在下面的示例中,我们通过在 numpy.random.choice() 函数中将 size 赋值为 3,从给定数组生成了一个包含 3 个随机元素的 numpy 数组 -
import numpy as np array = [10, 20, 30, 40, 50] random_choices = np.random.choice(array, size=3) print("随机选择:", random_choices)
输出
以下是上述代码的输出 -
随机选择:[30 20 40]
大小为元组
这里,我们通过在 numpy.random.choice() 函数中将元组指定为大小,生成了一个包含给定数组中随机元素的二维 Numpy 数组 -
import numpy as np array = [17, 42, 80, 79, 24] Numpy_Array= np.random.choice(array, size=(3,4)) print("Numpy Array - ", Numpy_Array) print(type(Numpy_Array))
输出
以下是上述代码的输出 -
Numpy Array - [[42 79 79 17] [17 80 79 79] [42 24 79 79]] <class 'numpy.ndarray'>
示例:不重复选择
当我们需要一个包含所有唯一元素的随机 NumPy 数组时,我们需要将 replace 参数设置为 False。
在以下示例中,我们通过将 replace 参数设置为 False,从数组中选择了 4 个唯一随机元素。-
import numpy as np array = [15, 82, 63, 54, 25] Numpy_Array = np.random.choice(array, size=3, replace=False) print("Numpy Array :", Numpy_Array) print(type(Numpy_Array))
输出
以下是以上代码 −
Numpy 数组:[15 82 54] <class 'numpy.ndarray'>
示例:基于概率的随机选择
我们可以通过使用 p 参数指定概率分布来控制数组中每个元素的出现频率。p 参数应为与输入数组中每个元素关联的概率的一维数组。
在下面的例子中,我们使用概率分布为某些元素分配了更高的概率 -
import numpy as np array = [41, 82, 13, 24, 65] probabilities = [0.1, 0.2, 0.3, 0.2, 0.2] # 概率之和必须为 1 Numpy_Array = np.random.choice(array, size=3, p=probabilities) print("随机 Numpy 数组及其概率: ", Numpy_Array)
输出
以下是上述代码的输出 -
随机 Numpy 数组及其概率: [24 82 82]
numpy_array_creation_routines.html