我最近一直在尝试模拟一些蒙特卡洛斯模拟,并遇到了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我的问题是:这2个有什么区别?如何生成样本Generator?
1 回答
交互式爱情
TA贡献1712条经验 获得超3个赞
所以你想从这样的事情开始:
>>> 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])
添加回答
举报
0/150
提交
取消