簡體   English   中英

如何使用列表設置scipy.stats分發的參數

[英]How to set parameters for scipy.stats distribution with a list

我正在使用包fitter來使連續分布適合Python中的numpy數據數組。 fitter.fitted_param返回具有不同長度的tupple的字典,其中包含每個分布的最佳擬合參數。 這些參數與用於在scipy.stats設置這些分布的參數相同。 我想使用這些元組直接通過scipy.stats設置參數,但是我不知道該怎么做。 有任何想法嗎?

例:

>from fitter import Fitter
>import numpy as np
>data = np.random.random((1000,1))
>f = Fitter(data,distributions = ['norm','gamma'])
>f.fit()
>param = f.fitted_param['gamma']
>param
out:(20759.430545279687, -41.012521759919224, 0.0019996776498165851)

如果我現在要創建一個新的伽瑪分布產生伽瑪分布的隨機值與同alocscale在指定param上面,我需要寫:

>from scipy import stats
>rv = stats.gamma(a=param[0],loc=param[1],scale=param[2])
>rv.rvs(100)

如何設置aloc ,以及scale的情況下直接鍵入出來明確? 我希望能夠使用任意數量的參數快速擬合任何分布,並生成遵循該分布的隨機值。

謝謝你的幫助!

您可以執行<distribution>(*param) ,只要參數param列表的順序正確。

如果不是,則必須在字典中包含參數,並使用<distribution>(**param)將其作為關鍵字參數調用,例如:

param = {"a": 20759, "scale": 0.001, "loc": -41}
stats.gamma(**param)

編輯:更多信息在這里: * args和** kwargs?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM