numpy.random.*函数(包括
numpy.random.binomial)利用了在应用程序之间共享的全局随机生成器对象。另一方面,
default_rng()是一个独立的Generator对象,它不依赖于全局状态。
如果您不关心应用程序中可重现的“随机性”,那么这两种方法暂时是等效的。尽管NumPy的新RNG策略通常不鼓励使用全局状态,但它并未弃用
numpy.random.*1.17版中的任何功能,尽管NumPy的未来版本可能会弃用。
还要注意,由于
numpy.random.*函数依赖于不是线程安全的全局随机生成器对象,因此如果您的应用程序使用多个线程,这些函数可能会导致竞争。(
Generator对象也不是线程安全的,但是有多种方法可以通过多线程生成随机数,而无需在线程之间共享随机生成器对象。)



