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

2024-04-18 08:37:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我怎样才能从一个连续的三角形分布中画出给定值xlower limit=-1和{}的CDF。我不明白如何设置参数。我想得到在Scipy中做numpyp.random.triangular(left=-1, mode=0, right=1)的等价物。在

我尝试了以下几点,但我不确定这是否是我想要的。在

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参数。在


Tags: 参数statsrandomscipytriangularlowerloclimit
1条回答
网友
1楼 · 发布于 2024-04-18 08:37:45

看起来CDF函数的参数是正确的。通常,如果您有leftmode和{},那么可以使用

c = (mode - left) / (right - left)
loc = left
scale = right - left

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

^{pr2}$

正确的说法是

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

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


要从宽度2以0为中心的三角形分布中提取样本,请使用scipy.triangrvs方法,以及c=0.5loc=-1和{}。例如,以下绘制了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])

相关问题 更多 >