首页 > 解决方案 > 如何获得支持范围从最多零到无穷大的所有 SciPy 发行版?

问题描述

我正在尝试实现一个代码,该代码会根据以下标准获取 SciPy 中所有概率分布的列表:a)分布是连续的,b)分布支持的下限最多为 0,并且 c ) 分布的上限是无穷大。

有没有一种快速的方法来实现这一点?也许一种方法可以拉出所有rv_continuous分布的列表,然后在分布的支持上使用 lambda 函数?它会是什么样子?在 SciPy 站点上查找所有连续发行版并获取具有所需支持的发行版是很麻烦的,如果发行版被重命名、添加到 SciPy 或从 SciPy 中删除,可能会出现问题(我正在尝试使我的代码尽可能动态)。

感谢您的热心帮助!

标签: pythonscipy

解决方案


我想到了:

all_dist = [getattr(stats, d) for d in dir(stats) if isinstance(getattr(stats, d), stats.rv_continuous)]
    filtered = [x for x in all_dist if ((x.a <= 0) & (x.b == math.inf))]

推荐阅读