我已经使用numpy的随机功能有一段时间了,通过调用诸如np.random.choice()
或np.random.randint()
等方法。
我刚刚发现可以创建一个default_rng
对象,或其他Generator
对象:
from numpy.random import default_rng
gen = default_rng()
random_number = gen.integers(10)
到目前为止,我总是使用
。np.random.randint(10)
相反,我想知道这两种方式之间的区别。
我唯一能想到的好处是跟踪多个种子或想要使用特定的PRNG,但也许在更通用的用例中还有区别?
randint
和np.random
的其他函数现已弃用,转而使用生成器。使用多个独立的随机数流是它们的优点之一,但生成器还允许您在不同的位生成器算法之间进行选择,甚至可以实现自己的算法,因此更加灵活,也可能使可重复性更容易实现。 - jdehesa