如何在Python中用NumPy随机选择一个数组的元素
随机值在机器学习、统计学和概率论等数据相关领域非常有用。numpy.random.choice()函数被用来从NumPy数组中获取随机元素。它是Python的NumPy包中的一个内置函数。
语法: numpy.random.choice( a , size = None, replace = True, p = None)
参数:
- a : 一个一维数组/列表(随机样本将从其元素中生成)或一个整数(随机样本将在这个整数的范围内生成)。
- size:int或ints的tuple(默认为None,返回单个随机值)。如果给定的形状是(m,n),那么将抽取m x n个随机样本。
- replace : (可选); 布尔值,指定是用还是不用替换来抽取样本。当样本大于列表中的人口时,替换不能为False。
- p : (可选);一个一维数组,包含与a中每个条目相关的概率。
方法
- Import module
- 创建一个样本数组
- 从创建的数组中随机选择数值
- 打印这样生成的数组。
下面是对一维和二维数组的实现。
生成一维的随机样本列表
示例 1:
import numpy as np
prog_langs = ['python', 'c++', 'java', 'ruby']
# generating random samples
print(np.random.choice(prog_langs, size=8))
# generating random samples without replacement
print(np.random.choice(prog_langs, size=3, replace=False))
# generating random samples with probabilities
print(np.random.choice(prog_langs, size=10,
replace=True, p=[0.3, 0.5, 0.0, 0.2]))
输出 :
示例 2:
import numpy as np
samples = 5
# generating random samples
print(np.random.choice(samples, size=10))
# generating random samples without replacement
print(np.random.choice(samples, size=5, replace=False))
# generating random samples with probabilities
print(np.random.choice(samples, size=5, replace=True))
# generating with probabilities
print(np.random.choice(samples, size=15,
replace=True, p=[0.2, 0.1, 0.1, 0.3, 0.3]))
输出:
生成一个二维的随机样本列表
示例:
import numpy as np
prog_langs = ['python', 'c++', 'java', 'ruby']
# generating random samples
print(np.random.choice(prog_langs, size=(4, 5)))
# generating random samples with probabilities
print('\n')
print(np.random.choice(prog_langs, size=(10, 2),
replace=True, p=[0.3, 0.5, 0.0, 0.2]))
输出:
示例 2:
import numpy as np
samples = 5
# generating random samples
print(np.random.choice(samples, size=(5, 5)))
# generating with probabilities
print('\n')
print(np.random.choice(samples, size=(8, 3),
replace=True,
p=[0.2, 0.1, 0.1, 0.3, 0.3]))
输出: