首页 > 解决方案 > 在间隔之间强制 scipy.stats.cauchy

问题描述

我想force scipy.stats.cauchy概率密度函数只生成-1和1之间的值。

目前我正在通过y=cauchy.rvs(center,sigma)在while循环中运行来做hacky方式,当它低于-1或高于1时,它会重新计算它,并在它进入所需的间隔后返回y。所以本质上我正在绘制一个新的随机变量,直到条件不满足。

我想知道是否有可能以更简单的方式做到这一点,scipy 文档不是很有帮助,而且非常模棱两可。有什么方法可以指定函数参数内随机变量的最小/最大范围,比如通过 **kwargs 或其他方式?

标签: pythonpython-3.xscipy

解决方案


简短的回答:不直接,不。

问题是分布是标准化的,支持的 pdf 的积分是统一的。当您更改支持时,您实际上是在更改分布。

对于截断的柯西分布,您可以使用均匀随机变量的反函数变换轻松滚动自己的小生成器。


推荐阅读