我需要获得k大小的样本,而不从群体中取代,群体中的每个成员都具有相关的权重(W)。加密随机样本无需替换python
与NumPy的random.choices不会不更换执行此任务,并random.sample不会采取加权输入。
目前,这是我在用的:
P = np.zeros((1,Parent_number))
n=0
while n < Parent_number:
draw = random.choices(population,weights=W,k=1)
if draw not in P:
P[0,n] = draw[0]
n=n+1
P=np.asarray(sorted(P[0]))
虽然这个工作,它reqires从阵列中来回切换,列表和回阵列和,因此,不太理想。
我在寻找最简单,最容易理解的解决方案,因为此代码将与其他人共享。
“Numpy的random.choices不会执行这个任务没有替换” - 它是'numpy.random.choice',而不是选择,是的,如果你告诉它。 – user2357112
你使用的是内置'random'模块而不是'numpy.random'吗? 'random.choices'不是一个NumPy的东西。 – user2357112
奥普斯,是的,你是对的。我正在使用python随机模块。 –