【问题标题】:Sampling rows in data frame with an empirical probability distribution of a variable使用变量的经验概率分布对数据框中的行进行采样
【发布时间】:2017-09-30 21:20:33
【问题描述】:

我遇到了以下问题。

假设我们有一个包含少量变量的数据框。此外,一个变量(var_A)是一个概率分数——它的值范围从 0 到 1。我想从这个数据帧中采样行,以便更有可能选择 var_A 值更高的行——所以我猜我必须从 var_A 的经验分布中得出结论。我知道如何实现 var_A 的 edf 函数,因为它建议 here 但我不知道如何使用这个分布来采样行。

你能帮我解决这个问题吗?

谢谢

【问题讨论】:

    标签: python random probability


    【解决方案1】:

    您可以使用numpy.random.choice以这种方式进行采样:

    import numpy as np
    
    num_dists = 4
    num_samples = 10
    var_A = np.random.uniform(0, 1, num_dists)
    
    # ensure var_A sums to 1
    var_A /= np.sum(var_A)
    
    samples = np.random.choice(len(var_A), num_samples, p=var_A)
    
    print('var_A: ', var_A)
    print('samples: ', samples)
    

    样本输出:

    var_A:  [ 0.23262621  0.02990421  0.22357316  0.51389642]
    samples:  [3 0 0 2 0 0 2 3 3 2]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-22
      • 2021-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-26
      • 2017-02-11
      相关资源
      最近更新 更多