gpt4 book ai didi

python - 从 python Scipy 中的连续三角形分布中绘制

转载 作者:行者123 更新时间:2023-12-05 03:12:59 28 4
gpt4 key购买 nike

我如何进行抽奖并获得特定值的 CDF x来自 mode=0 的连续三角分布, lower limit=-1upper limit=1 .我不明白如何设置参数。我想得到相当于做 numpyp.random.triangular(left=-1, mode=0, right=1)Scipy .

我尝试了以下操作,但我不确定这是否是我所追求的。

scipy.stats.triang.cdf([-1,-0.5,0,0.5,1], c=0.5, loc=-1, scale=2)并获得:array([ 0, 0.125, 0.5, 0.875, 1.])这似乎是正确的。

我不明白为什么

scipy.stats.triang.expect(func=lambda x: x, c = 0.5, loc=0.5, scale=1)

正在产生错误信息

_argcheck() missing 1 required positional argument: 'c'

虽然c提供参数。

最佳答案

看起来你的 CDF 函数参数是正确的。通常,如果您有 numpy.random.triangular 使用的 leftmoderight,您可以使用

将它们转换为 scipy.stats.triang 的参数
c = (mode - left) / (right - left)
loc = left
scale = right - left

expect 方法的参数可能会令人困惑。你试过这个:

scipy.stats.triang.expect(func=lambda x: x, c = 0.5, loc=0.5, scale=1)

正确的调用是

In [91]: triang.expect(lambda x: x, (0.5,), loc=0.5, scale=1)
Out[91]: 1.0

第二个参数是一个包含形状参数的元组,在本例中是元组 (c,)。形状参数没有单独的关键字参数。


要从以 0 为中心的宽度为 2 的三角形分布中抽取样本,请使用 scipy.triangrvs 方法,其中 c=0.5loc=-1scale=2。例如,下面抽取了 10 个样本:

In [96]: triang.rvs(c=0.5, loc=-1, scale=2, size=10)
Out[96]:
array([-0.61654942, 0.03949263, 0.44191603, -0.76464285, -0.5474533 ,
0.00343265, 0.222072 , -0.14161595, 0.46505966, -0.23557379])

关于python - 从 python Scipy 中的连续三角形分布中绘制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31745934/

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