【发布时间】:2012-12-11 08:34:24
【问题描述】:
我正在使用 python 对我的代码进行数据分析。我目前正在尝试调试一些东西,所以我将一些可能无效的数据放入我的 python 代码中。使用curve_fit 的行给了我TypeError
TypeError: array cannot be safely cast to required type
Traceback (most recent call last):
File "makeStuffUnHR.py", line 405, in <module>
FT = plotFT(FT,A)
File "makeStuffUnHR.py", line 325, in plotFT
line,pars = fitFTsurfaceTension(FTRange2,fty,a)
File "/home/yotam/Applications/Process/dataHandler.py", line 75, in fitFTsurfaceTension
popt, pcov = curve_fit(FTfuncSurface,x,log(y))
File "/usr/lib/python2.7/dist-packages/scipy/optimize/minpack.py", line 426, in curve_fit
res = leastsq(func, p0, args=args, full_output=1, **kw)
File "/usr/lib/python2.7/dist-packages/scipy/optimize/minpack.py", line 283, in leastsq
gtol, maxfev, epsfcn, factor, diag)
minpack.error: Result from function call is not a proper array of floats.
我试图在没有运气的情况下捕获 `TypeError' 异常
如何让python继续运行代码?
编辑:
这是我的尝试,期待部分:
try:
popt, pcov = curve_fit(FTfuncSurface,x,log(y))
except TypeError:
popt = [0,0]
【问题讨论】:
-
你是如何尝试捕捉它的?发布代码的相关部分。
-
我不确定您在代码中使用了什么,但如果同时使用 pcovariance 因子,则使用 pass 或仅设置 popt 都不会在以后起作用。
-
信息不足。你的
try except应该已经抓住了它,所以还有更多事情要做。请发布更多代码或人们可以尝试重现的示例。同时,您也可以尝试使用毯子try: except:(不带TypeError)让程序不管任何异常都继续运行。 -
@tiago,这就是我所需要的。谢谢。我认为真正的问题是程序记录了一个负数。
标签: python exception scipy curve-fitting