获取 numpy.random 分布列表

ajw*_*ood 5 python random numpy

如何获取文档中numpy.random描述的可用发行版列表?

我正在编写一个会产生噪音的命令行实用程序。我想获取每个可用的发行版,并获取它们所需的参数以生成命令行选项。

我几乎可以做这样的事情:

import numpy as np
distributions = filter( lambda elt: not elt.startswith("__"),  dir(np.random) )
Run Code Online (Sandbox Code Playgroud)

...但是这个列表包含额外的东西(例如shuffle,get_state),它们不是分布。

Sor*_*vux 2

正如它们在文档中所做的那样,您必须手动列出它们。这是确保您不会获得将在未来版本的 numpy 中添加的不需要的函数的唯一方法。如果您不关心将来的添加,您可以过滤掉不是发行版的函数名称。

他们很友善地在模块文档 ( ) 中提供了列表import numpy as np; print(np.random.__doc__),但是如您所示迭代模块函数比解析文档字符串要安全得多。他们定义了列表 ( np.random.__all__),这可能是另一个有趣的迭代可能性。

您的问题表明,应该审查 numpy 的命名约定,以包含类似性质的函数的前缀或将它们分组在子模块中。