我在創建python中的連續分配時遇到了困難,它真的開始困擾着我。我已閱讀並重新閱讀this python guide (scipy guide),它並未幫助我解決問題。在python中創建連續分配
我的代碼如下:
import sys
import scipy.stats
import numpy
def CDF_Random(N,NE,E,SE,S,SW,W,NW,Iterations):
WindDir = [0,45,90,135,180,225,270,315]
Freq = N,NE,E,SE,S,SW,W,NW
mydist = scipy.stats.rv_continuous(#My problem is what to write here)
cdf_rand=mydist.rvs(size=Iterations)
return (cdf_rand)
if __name__ == '__main__':
N = float(sys.argv[1])
NE = float(sys.argv[2])
E = float(sys.argv[3])
SE = float(sys.argv[4])
S = float(sys.argv[5])
SW = float(sys.argv[6])
W = float(sys.argv[7])
NW = float(sys.argv[8])
Iterations = float(sys.argv[9])
numpy.set_printoptions(threshold=Iterations)
sys.stdout.write(str(CDF_Random(N,NE,E,SE,S,SW,W,NW,Iterations)))
至於如果你讀的代碼,你可以看到,我的問題是知道要放什麼東西在括號創建連續分佈。 scipy.stats.rv_continuous(#what to put here)
。
我已經嘗試了很多不同的東西,主要是在this document(scipy guide)建議的人,像我的設置上下範圍值a=,b=
其設置爲pdf
或ppf
。我已經嘗試使用在命令行中輸入的內容或僅寫入代碼本身的內容。
從命令行我運行這個命令 python C:\Users\...\CDF.py 0.01 0.01 0.01 0.01 0.01 0.93 0.01 0.01 10
每次我得到; RuntimeError:maximum recursion depth exceeded
我已經嘗試將遞歸深度重置爲不同的值,但這不起作用或崩潰python。 sys.setrecursionlimit(10000)
所以基本上應該在括號中輸入scipy.stats.rv_continuous()
之後創建[array]
稱爲WindDir
連續分佈的規定分佈freq
? 我通過谷歌和stackoverflow網站誠實地看了一眼,使用關鍵字搜索,單獨使用標籤和標籤進行搜索,並找不到解決方案。
編輯1 - 預期結果 我想輸出是0,360
或0,2pi
什麼是每次迭代所需輸出的輸出?離散的主要風向,或範圍[0,360)內的實數?如果你想要一個真正的紅衣主教,試試'numpy.random.choice(list('NEWS'),size = 10,p = [0.1,0.1,0.1,0.7])' – mtadd
我希望它能產生一個實數範圍'0,360'或'0,2pi',但使用列表不錯。 – user2519890