【问题标题】:Python - Creating a skewed discrete normal probability distribution for sampling integersPython - 为采样整数创建倾斜的离散正态概率分布
【发布时间】:2019-02-18 09:32:43
【问题描述】:

类似于下面的问题:
Create random numbers with left skewed probability distribution

通过说明最大值和方差,我想从某个给定范围内采样整数。

例如,对于范围 - {0,1,...,1000}(又名range(1001)),最大值为 100,因此采样数字很可能来自 [90-110] 范围, 不太可能被采样的数字是 [80-89] 和 [111-120] 等。

【问题讨论】:

    标签: python numpy scikit-learn probability normal-distribution


    【解决方案1】:

    以下代码将执行此操作:

    import scipy.stats as ss
    import numpy as np
    import matplotlib.pyplot as plt
    
    center = 100
    n = 1001
    std = 20
    x = np.arange(0, n)
    prob = ss.norm.pdf(x,loc=center, scale = std )
    prob = prob / prob.sum() #normalize the probabilities so their sum is 1    
    
    nums = np.random.choice(x, 20, p=prob)
    nums
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-14
      • 2011-09-02
      • 2020-10-24
      • 1970-01-01
      • 1970-01-01
      • 2016-06-12
      • 2021-03-13
      • 1970-01-01
      相关资源
      最近更新 更多