【问题标题】:how to avoid python from stopping when curve_fit throws TypeError当curve_fit抛出TypeError时如何避免python停止
【发布时间】: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


【解决方案1】:

使用 try/except 块捕获TypeError 异常。

演示它的示例代码:

try:
   a = (1,2,3) #Some code
except IndexError:
   pass

【讨论】:

  • 我试过了。它没有用。 (我的文本的最后一行 + 我的编辑)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-14
  • 2018-09-05
  • 2019-09-14
  • 1970-01-01
相关资源
最近更新 更多