1 作用
根据给定的一维数组生成随机样本
2 参数解析
numpy.random.choice(a,size = None,replace = True,p = None )
a
是一维数组状或整数,如果是数组,则会从其元素生成随机样本。如果为int,则生成随机样本,就是a=np.arange(a)size
是int或int元组,可选。输出的形状。默认值为无,在这种情况下,将返回单个值。replace
布尔值,可选,sample是否更换p
一维数组状,可选,与a中每个条目关联的概率。如果未给出,则样本将假定a中所有条目的均匀分布。
3 举例使用
1、从大小为3的np.arange(5)生成均匀的随机样本:
np.random.choice(5, 3)#等同于np.random.randint(0,5,3)
输出
array([0, 3, 4])
2、从大小为3的np.arange(5)生成非均匀随机样本:
np.random.choice(5, 3, p=[0.1, 0, 0.3, 0.6, 0])
输出
array([3, 3, 0])
3、从大小为3的np.arange(5)生成一个均匀的随机样本,而无需替换:
np.random.choice(5, 3, replace=False)#等同于np.random.permutation(np.arange(5))[:3]
输出
array([3,1,0])
4、从大小为3的np.arange(5)生成非均匀随机样本,而无需替换:
np.random.choice(5, 3, replace=False, p=[0.1, 0, 0.3, 0.6, 0])
array([2, 3, 0])
5、可以使用类似任意数组的形式重复上述操作,而不仅仅是整数。例如:
aa_milne_arr = ['pooh', 'rabbit', 'piglet', 'Christopher']
np.random.choice(aa_milne_arr, 5, p=[0.5, 0.1, 0.1, 0.3])
输出
array([‘pooh’, ‘pooh’, ‘pooh’, ‘Christopher’, ‘piglet’], dtype=’<U11’)