【问题标题】:Sampling indices from an array of normalized frequencies with Python使用 Python 从归一化频率数组中采样索引
【发布时间】:2018-12-23 10:27:48
【问题描述】:

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

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

freqs = [.2, .1, .1, .3, .3]

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

【问题讨论】:

    标签: python probability sampling


    【解决方案1】:

    您可以查看this 几乎相同问题的答案。

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

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

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

    【讨论】:

      猜你喜欢
      • 2017-03-04
      • 2017-09-15
      • 1970-01-01
      • 2020-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多