This question already has answers here:
Fast arbitrary distribution random sampling (inverse transform sampling)

(5个答案)


3年前关闭。




我有一个这样的概率密度函数:
def p1(x):
    return ( sin(x) ** (-0.75) ) / (4.32141 * (x ** (1/5)))

我想用此[0; 1]降低pdf上的随机值。我该如何做随机值?

最佳答案

如弗朗西斯(Francis)所述,您最好了解发行版的CDF。
无论如何,scipy提供了一种方便的方法来定义自定义分布。
看起来很像

from scipy import stats
class your_distribution(stats.rv_continuous):
    def _pdf(self, x):
        return ( sin(x) ** (-0.75) ) / (4.32141 * (x ** (1/5)))

distribution = your_distribution()
distribution.rvs()

关于python - 如何从(任意)连续概率分布中模拟? [复制],我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29095070/

10-11 16:46