python 条件概率_Python中条件概率分布的随机数

例如,Weibull分布的概率分布函数PDF可能看起来有点像下图中的黑色图形。在from scipy.stats import exponweib

import matplotlib.pyplot as plt

import numpy as np

def condwbull_pdf(x, k, lmb, cond):

return (x >= cond) * exponweib.pdf(x, 1, k, scale=lmb, loc=0) / exponweib.sf(cond, 1, k, scale=lmb, loc=0)

k = 5

lmb = 100.

cond = 100

x = np.linspace(0, 200, 100)

plt.plot(x, exponweib.pdf(x, 1, k, scale=lmb, loc=0), 'k')

plt.plot(x, condwbull_pdf(x, k, lmb, cond), 'r')

plt.show()

14061790a3f7cd86e6af3b554691ef69.png

红色的图说明了一个conditional probability distribution对于x=100的条件。请参见condwbull_pdf()。在

通常从上述威布尔分布中随机抽样,我可以:

^{pr2}$

现在,我想从条件函数中提取随机数。一种方法是:def cond_rnd(lmb, k, cond):

stop = 0

while stop < cond:

stop = random.weibullvariate(lmb, k)

return stop

但是,对于较大的条件值,这将变得非常低效。你能想得更快一点吗?在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值