我在 python 中创建连续分布时遇到了麻烦,它真的开始让我烦恼。我已经阅读并重新阅读这个Python指南(scipy指南)这对我的问题没有帮助。
我的代码如下:
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)
.
我尝试了很多不同的方法,主要是中建议的方法本文档(scipy 指南),就像设置我的范围值上限和下限一样a=,b=
将其设置为pdf
or a ppf
。我努力了[arrays]
使用在命令行中输入的内容或仅使用我写入代码本身的内容。
我从命令行运行这个命令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]
called WindDir
对于给定的分布freq
?
老实说,我已经仔细浏览了 Google 和 stackoverflow 网站,使用关键字、带标签的关键字和单独的标签进行搜索,但找不到解决方案。
编辑1-期望的结果我希望输出是介于0,360
or 0,2pi