介绍
从一个int数字或1维array里随机选取内容,并生成新数组
语法
numpy.random.choice(a, size=None, replace=True, p=None)
参数
a : 1-D array-like or int
如果是ndarray,从该数组中随机选取元素,并生成数组
如果为int型数字,就像np.arange(n)一样,然后从该数组中随机选取元素,并生成数组size : 生成数组的长度。int or tuple of ints, 可选
replace : boolean, 可选。如果False,生成数组的元素都不一样,如果True,有可能会出现重复
抽样之后是否还放回去,如果是False,那么出来的三个数都不一样,如果是True, 有可能会出现重复的,因为前面的抽的放回去了p : 1-D array-like, 可选
从a中选取的概率,默认均匀分布
例子
>>> np.random.choice(5, 3)
array([0, 3, 4])
>>> np.random.choice(5, 3, p=[0.1, 0, 0.3, 0.6, 0])
array([3, 3, 0])
>>> np.random.choice(5, 3, replace=False)
array([3,1,0])
>>> np.random.choice(5, 3, replace=False, p=[0.1, 0, 0.3, 0.6, 0])
array([2, 3, 0])
>>> 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'],
感谢:
https://blog.csdn.net/autoliuweijie/article/details/51982514
https://blog.csdn.net/qfpkzheng/article/details/79061601