Scipy randint与numpy randint的区别

8

我有一个简单而广泛的问题,涉及到两种方法:

scipy.stats.randint

并且

numpy.random.randint

阅读了这两种方法的API之后,我有点困惑何时最好使用每种方法。因此,我想知道是否有人能够概述两种方法之间的区别,并可能提供一些示例,说明何时使用一种方法比另一种方法更可取。谢谢!
编辑:每种方法的文档链接-> numpy.random.randint, scipy.stats.randint
1个回答

2
主要区别在于scipy.stats.randint允许您显式命名下限或上限概率,以及指定您想从中绘制随机整数的分布(请参阅scipy.stats.randint文档的方法部分)。因此,如果您想从给定的密度函数中绘制随机区间,则更有用。
如果您只想绘制落在某个范围内的随机整数,并且没有关于分布的要求,则numpy.random.randint更为直接。它们将直接从离散均匀分布中绘制,没有内置选项来修改这个分布。

哦,我现在看到了!而且我发现你可以对scipy randint执行方法,而numpy randint只是返回一个随机整数或一组随机整数。好有趣。那么接下来的问题是,scipy randint是一个类吗?你需要实例化一个对象吗? - DGav
2
那么接下来的问题是,scipy randint 是一个类吗?你需要实例化一个对象吗?不是的,scipy.stats.randintscipy.stats.randint_gen 类的一个实例。scipy.stats.randint 已经可以直接使用了--你可以调用它的方法而无需实例化任何其他对象。 - Warren Weckesser
1
@WarrenWeckesser 我现在在源代码中看到了,谢谢。对于任何其他好奇的人,他们可以在这里找到randint被初始化的位置(https://github.com/scipy/scipy/blob/v0.15.1/scipy/stats/_discrete_distns.py)。 - DGav

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接