numpy.random 与 numpy.random.Generate 有什么区别

我最近一直在尝试模拟一些蒙特卡洛斯模拟,并遇到了numpy.random. 检查指数生成器的文档我注意到这是页面中的警告,它告诉我们

Generator.exponential 应该用于新代码。

尽管这样,numpy.random.exponential仍然有效,但我无法运行Generator对应的。我收到以下错误:

---------------------------------------------------------------------------

TypeError                                 Traceback (most recent call last)

<ipython-input-14-c4cc7e61aa98> in <module>

----> 1 np.random.Generator.exponential(2, 1000)


TypeError: descriptor 'exponential' for 'numpy.random._generator.Generator' objects doesn't apply to a 'int' object


我的问题是:

  1. 这2个有什么区别?

  2. 如何生成样本Generator


眼眸繁星
浏览 86回答 1
1回答

交互式爱情

所以你想从这样的事情开始:>>> import numpy>>> my_generator = numpy.random.default_rng()此时,my_generator是一个实例numpy.random.Generator:>>> type(my_generator)<class 'numpy.random._generator.Generator'>您可以使用my_generator.exponential指数分布获取变量。3.2这里,我们从具有尺度参数(或等效的速率0.3125)的指数分布中抽取 10 个样本:>>> my_generator.exponential(3.2, size=10)array([6.26251663, 1.59879107, 1.69010179, 4.17572623, 5.94945358,       1.19466134, 3.93386506, 3.10576934, 1.26095418, 1.18096234])您的Generator实例当然也可以用于获取您需要的任何其他随机变量:>>> my_generator.integers(0, 100, size=3)array([56, 57, 10])
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python