gpt4 book ai didi

python - 快速任意分布随机采样(逆变换采样)

转载 作者:IT老高 更新时间:2023-10-28 21:10:13 24 4
gpt4 key购买 nike

random 模块 (http://docs.python.org/2/library/random.html) 有几个固定 函数可以从中随机采样。例如 random.gauss 将从具有给定均值和 sigma 值的正态分布中随机抽取点。

我正在寻找一种方法,在 python。这就是我的意思:

def my_dist(x):
# Some distribution, assume c1,c2,c3 and c4 are known.
f = c1*exp(-((x-c2)**c3)/c4)
return f

# Draw N random samples from my distribution between given limits a,b.
N = 1000
N_rand_samples = ran_func_sample(my_dist, a, b, N)

其中 ran_func_sample 是我所追求的,而 a, b 是从中抽取样本的限制。 python 中是否有类似的东西?

最佳答案

您需要使用逆变换采样方法来获得根据您想要的规律分布的随机值。使用这种方法你可以应用 反函数在区间 [0,1] 内具有标准均匀分布的随机数。

找到反函数后,你会得到 1000 个根据需要分布的数字,这种方式很明显:

[inverted_function(random.random()) for x in range(1000)]

更多关于逆变换采样:

另外,StackOverflow 上有一个与主题相关的好问题:

关于python - 快速任意分布随机采样(逆变换采样),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21100716/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com