代码如下
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表示是否可以重用元素,默认为Truechoice源码
添加回答
举报
0/150
提交
取消