#select
import numpy as np
pop_size =10
#计算所得各DNA的适应度
fitness = [0.1,0.3,0.2,0.4,0.5,0.6,0.68,0.7,0.8,0.9]
p_fit = fitness/np.sum(fitness)
# p_fit相加值为1, choice返回索引号,筛选出较高适应度DNA对应的索引号
b = np.random.choice(np.arange(pop_size),size=pop_size,replace=True,p=p_fit)
print(b)
输出:
[7 7 5 9 5 8 8 4 6 1]