- def choice(a, size=None, replace=True, p=None)
表示从a中随机选取size个数
replacement 代表的意思是抽样之后还放不放回去,如果是False的话,那么通一次挑选出来的数都不一样,如果是True的话, 有可能会出现重复的,因为前面的抽的放回去了。
p表示每个元素被抽取的概率,如果没有指定,a中所有元素被选取的概率是相等的。
默认为有放回的抽样 (可以重复)
- np.random.choice(5, 3)
- 和np.random.randint(0,5,3)意思相同,表示从[0,5)之间随机以等概率选取3个数
- np.random.choice(5, 3, p=[0.1, 0, 0.3, 0.6, 0])
- 表示分别以p=[0.1, 0, 0.3, 0.6, 0]的概率从[0,1,2,3,4]这四个数中选取3个数
以下为无放回的抽样 (不会出现重复的元素)
- np.random.choice(a=5, size=3, replace=False, p=None)
- np.random.choice(a=5, size=3, replace=False, p=[0.2, 0.1, 0.3, 0.4, 0.0])
此方法也可以对列表List类型元素使用
- aa_milne_arr = ['pooh', 'rabbit', 'piglet', 'Christopher']
- np.random.choice(aa_milne_arr, 5, p=[0.5, 0.1, 0.1, 0.3])
代码语言:javascript
复制import numpy as np
a1=np.random.choice(5, 3)
a2=np.random.choice(5, 3, p=[0.1, 0, 0.3, 0.6, 0])
a3=np.random.choice(a=5, size=3, replace=False, p=None)
a4=np.random.choice(a=5, size=3, replace=False, p=[0.2, 0.1, 0.3, 0.4, 0.0])
aa_milne_arr = ['pooh', 'rabbit', 'piglet', 'Christopher']
a5=np.random.choice(aa_milne_arr, 5, p=[0.5, 0.1, 0.1, 0.3])
print("a1:n",a1,"n","a2:n",a2,"n","a3:n",a3,"n","a4:n",a4,"n","a5:n",a5)
# a1:
# [2 2 2]
# a2:
# [2 3 3]
# a3:
# [4 0 1]
# a4:
# [0 3 2]
# a5:
# ['pooh' 'rabbit' 'pooh' 'pooh' 'Christopher']