【发布时间】:2020-10-24 23:37:35
【问题描述】:
我定义了以下自定义概率分布:
import scipy.stats as st
# parameters
a = 3 / 16
b = 1
class linear_fractional(st.rv_discrete):
def _pdf(self, n):
if (n == 0):
return (a + b - 1) / (a + b)
else:
return (a * b ** (n - 1)) / (a + b) ** (n + 1)
LF = linear_fractional()
LF.rvs()
当我让我的脚本运行时,我收到一条冗长的错误消息:
Traceback (most recent call last):
File "C:/Users/thoma/PycharmProjects/Host_Parasite_Coevolution/Asymptotics.py", line 17, in <module> LF.rvs()
File "C:\Users\thoma\AppData\Local\Programs\Python\Python37-32\lib\site-packages\scipy\stats\_distn_infrastructure.py", line 2969, in rvs
return super(rv_discrete, self).rvs(*args, **kwargs)
...
RecursionError: maximum recursion depth exceeded while calling a Python object
如果我改为使用LF.mean(),我会得到
Fatal Python error: Cannot recover from stack overflow.
有谁知道这是为什么以及如何解决这个问题?我必须为我的概率分布定义一个上限吗?
【问题讨论】:
-
Win 10、x64、Python 3.7、Spyder 3.3.6、IPython 7.13.0 代码运行无错误
标签: python scipy scipy.stats