代码如下 import numpy as np tb3 = np.random.randint(100, 200, (8,)) print('原始tb3\n', tb3) for i in range(5):#抽取5次 tc3 = np.random.choice(tb3, (3,2), p=tb3/np.sum(tb3)) #sum(tb3) 返回的是tb3中所有元素的和 print('tb3 choice{0}次后的tc3\n{1}'.format(i+1,tc3))
--------问题如下----- 知道概率 p = tb3/np.sum(tb3) 为什么相对于这个概率下: 数值越大被抽取的概率越大
运行结果如下(随机运行一次)
原始tb3 [183 108 108 131 141 188 161 109] tb3 choice1次后的tc3 [[141 141] [161 141] [109 131]] tb3 choice2次后的tc3 [[183 188] [188 131] [131 183]] tb3 choice3次后的tc3 [[161 161] [131 108] [108 131]] tb3 choice4次后的tc3 [[108 188] [183 109] [131 161]] tb3 choice5次后的tc3 [[161 141] [141 183] [131 109]] [Finished in 0.4s]
----------参考内容---------
choice(a[, size, replace, p])-->从一维数组a中以概率p抽取抽取元素,形成size形状新的数组,replace表示是否可以重用元素,默认为True