SciPy 的 stats
模块具有“随机变量”类型的对象(他们称之为 rv_frozen
)。它使绘制给定分布的随机变量的 cdf 变得容易。这是一个非常简单的例子:
import scipy.stats as stats
n = stats.norm()
x = linspace(-3, 3)
y = n.cdf(x)
plot(x, y)
我想知道是否有一种方法可以对此类随机变量进行基本算术运算。下面的例子是一厢情愿的想法(行不通)。
du_list = [stats.randint(2, 5) for _ in xrange(100)]
du_avg = sum(du_list) / len(du_list)
x = linspace(0, 10)
y = du_avg.cdf(x)
plot(x, y)
这个一厢情愿的例子应该产生随机变量的累积分布函数图,它是 100 i.i.d. 的平均值。随机变量,每个变量均匀分布在集合 {2,3,4}
上。
最佳答案
我意识到这有点晚了,但我想我会回答,以防将来其他人需要这个。我最近需要相同的功能,甚至考虑扩展 scipy 的 rv_discrete
来实现它,但后来我发现 PaCAL .
PaCAL 是一个用于对随机变量进行算术运算的 Python 软件包,它支持相当多的分布,包括连续分布。甚至有一些支持双变量联合分布。在 PyPI 上作为一个包提供。不过仅适用于 Python 2.x。
编辑:PaCAL repo on Github现在也支持 Python 3.x。
关于python - 有没有一种方法可以对 SciPy 的随机变量进行算术运算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24386947/