我只是试图捕获scipy.optimize.curve_fit函数抛出的ValuError,但我意识到它没有被识别为有效的异常。
这是我的代码:
from scipy.optimize import curve_fit
ksi=( (185/((xdata_1/420)**2 + (420/xdata_1)**2 + 90 )) + (27/((xdata_1/800)**4 + (800/xdata_1)**4 + 5.50)) + (0.005/((xdata_1/2200)**2 + (2200/xdata_1)**2 - 1.95)) + (0.012/((xdata_1/180000)**2 + (180000/xdata_1)**2 -1.8))+ (0.01/((xdata_1/97000)**2 + (97000/xdata_1)**2 -1.95)) + (0.03/((xdata_1/250000)**2 + (250000/xdata_1)**2)) )
def power(xdata_1,cc,dd,gg):
global ksi
return cc*(xdata_1**(dd))*(10**(-1.572*gg*(ksi)))
这是我得到的完整警告:
ValueError:操作数无法与形状(455,)(1772,)
一起广播我该如何解决这个问题?
答案 0 :(得分:0)
猜测,因为你没有上传整个代码。认为我前一段时间遇到了同样的问题。我意识到我一直在使用列表而不是Numpy数组。转换为数组为我修复了它。阵列也需要具有相同的大小。