python:带有概率的随机样本
假设我想创建一个从[1,2,3]中选择的N个元素的样本,这样1、2和3将分别用权重0.4、0.4和0.2表示。我该怎么做呢 我知道如何在R中不使用循环:python:带有概率的随机样本,python,random,probability,sample,weighted,Python,Random,Probability,Sample,Weighted,假设我想创建一个从[1,2,3]中选择的N个元素的样本,这样1、2和3将分别用权重0.4、0.4和0.2表示。我该怎么做呢 我知道如何在R中不使用循环: mySample <- sample(c(1,2,3),size = 100,replace=T,prob = c(.4,.4,.2)) mySample您可以在[0,1]中生成一个随机数,如果它在[0,4]中,则选择“1”,否则如果它在[4,8]中,则选择“2”,否则选择“3”。代码为: from random import rand
mySample <- sample(c(1,2,3),size = 100,replace=T,prob = c(.4,.4,.2))
mySample您可以在[0,1]中生成一个随机数,如果它在[0,4]中,则选择“1”,否则如果它在[4,8]中,则选择“2”,否则选择“3”。代码为:
from random import random;
N = 10;
elements = [1,2,3];
weights = [.4, .4 , .2];
samples = range(N);
r = 0;
temp = 0;
for i in range(10):
r = random();
temp = 0;
for j in range(len(elements)):
temp += weights[j];
if(temp>r):
samples[i] = elements[j];
break;