我在 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=
设置为 apdf
或 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]
给WindDir
定分布的连续分布freq
?老实说,我已经通过 Google 和 stackoverflow 网站进行了很好的查看,使用关键字、带有标签的关键字和单独的标签进行搜索,但找不到解决方案。
编辑 1-期望的结果
我希望输出是介于0,360
或之间的实数0,2pi