Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python:带有概率的随机样本_Python_Random_Probability_Sample_Weighted - Fatal编程技术网

python:带有概率的随机样本

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

假设我想创建一个从[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 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;