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