Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/353.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_Probability_Sampling - Fatal编程技术网

使用Python从规范化频率数组中采样索引

使用Python从规范化频率数组中采样索引,python,probability,sampling,Python,Probability,Sampling,我正试图找出一种有效的方法,从一系列标准化频率中对索引进行采样。本质上,我有大量的数据,因此不可能将数据存储在每次出现一个元素(允许重复元素)的表中 作为一个小例子来说明我想做什么。假设我在Python中有以下数组: freqs = [.2, .1, .1, .3, .3] 现在,我想要的是能够基本上生成一个整数,通过对0到4之间的值进行采样,该值遵循与每个索引位置相关的分布,从而索引到上面的数组中。也就是说,如果对100个指数进行抽样,我希望其中20%的指数为0(平均值)。您可以检查几乎相同

我正试图找出一种有效的方法,从一系列标准化频率中对索引进行采样。本质上,我有大量的数据,因此不可能将数据存储在每次出现一个元素(允许重复元素)的表中

作为一个小例子来说明我想做什么。假设我在Python中有以下数组:

freqs = [.2, .1, .1, .3, .3]
现在,我想要的是能够基本上生成一个整数,通过对0到4之间的值进行采样,该值遵循与每个索引位置相关的分布,从而索引到上面的数组中。也就是说,如果对100个指数进行抽样,我希望其中20%的指数为0(平均值)。

您可以检查几乎相同问题的答案

您只需要定义数字及其频率

如果您使用的是python>=3.6,则可以使用开箱即用功能

from random import choices
indices = [1,2,3]
probs = [.3, .3, .4]
def get_rand_choice():
    return choices(indices, probs)