我最近一直在嘗試模擬一些蒙特卡洛斯模擬,并遇到了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
提交
取消