指数 PDF 中的错误
Error in exponential PDF
我需要完成功能 exponentialPDF
但出现错误:
'IndexError: index 0 is out of bounds for axis 0 with size 0'
函数如下所示:
def uniformPDF(x,a=0.0,b=4.0):
p = 1.0/(b-a)*ones((len(x),))
p[x<a] = 0.0
p[x>b] = 0.0
return(p)
def exponentialPDF(x,a=1.0):
"""
Call:
p = exponentialPDF(x,a)
Input argument:
vals: float (array)
Output argument:
p: float (array)
Examples:
In[1]: exponentialPDF([1,2],3)
Out[1]: array([ 0.14936121, 0.03332699])
"""
p = a * exp(-a*x)
p[x<0] = 0.0
return(p)
谁能帮我解决这个错误?
听起来您传递给函数的列表是空的。阅读 python 列表并查看以下内容 post:
IndexError: list assignment index out of range
我发现该函数可以使用 numpy 数组,例如p = exponentialPDF(np.array([1,2]),3).希望这对您有所帮助,您应该查看 SO homework post 并再次询问您是否仍然卡住。
编辑:当你使用 numpy 时,我会在函数中添加一个显式转换为 numpy 数组,如下所示:
def exponentialPDF(x,a=1.0):
"""
Call:
p = exponentialPDF(x,a)
Input argument:
vals: float (array)
Output argument:
p: float (array)
Examples:
In[1]: exponentialPDF([1,2],3)
Out[1]: array([ 0.14936121, 0.03332699])
"""
if type(x) is list:
x = array(x)
p = a * exp(-a*x)
p[x<0] = 0.0
return(p)
希望这会解决您的问题,您可以根据需要使用该函数(假设从该函数返回一个 numpy 数组没问题)。
我需要完成功能 exponentialPDF
但出现错误:
'IndexError: index 0 is out of bounds for axis 0 with size 0'
函数如下所示:
def uniformPDF(x,a=0.0,b=4.0):
p = 1.0/(b-a)*ones((len(x),))
p[x<a] = 0.0
p[x>b] = 0.0
return(p)
def exponentialPDF(x,a=1.0):
"""
Call:
p = exponentialPDF(x,a)
Input argument:
vals: float (array)
Output argument:
p: float (array)
Examples:
In[1]: exponentialPDF([1,2],3)
Out[1]: array([ 0.14936121, 0.03332699])
"""
p = a * exp(-a*x)
p[x<0] = 0.0
return(p)
谁能帮我解决这个错误?
听起来您传递给函数的列表是空的。阅读 python 列表并查看以下内容 post: IndexError: list assignment index out of range
我发现该函数可以使用 numpy 数组,例如p = exponentialPDF(np.array([1,2]),3).希望这对您有所帮助,您应该查看 SO homework post 并再次询问您是否仍然卡住。
编辑:当你使用 numpy 时,我会在函数中添加一个显式转换为 numpy 数组,如下所示:
def exponentialPDF(x,a=1.0):
"""
Call:
p = exponentialPDF(x,a)
Input argument:
vals: float (array)
Output argument:
p: float (array)
Examples:
In[1]: exponentialPDF([1,2],3)
Out[1]: array([ 0.14936121, 0.03332699])
"""
if type(x) is list:
x = array(x)
p = a * exp(-a*x)
p[x<0] = 0.0
return(p)
希望这会解决您的问题,您可以根据需要使用该函数(假设从该函数返回一个 numpy 数组没问题)。