nonlin = flux_2/fit_2
polyfit_function = np.polyfit(flux_1[i,j,:], nonlin, 3, full=True)
print(polyfit_function)
fit=np.polyval(polyfit_function,np.arange(np.min(flux_1),np.max(flux_1)))
plt.plot(flux_1[i,j,:], nonlin,'.')
plt.plot(np.arange(np.min(flux_1),np.max(flux_1)), polyfit_function)
plt.show()
发生的错误发生在np.polyval
函数:
val(p, x)
679 y = NX.zeros_like(x)
680 for i in range(len(p)):
--> 681 y = y * x + p[i]
682 return y
683
ValueError: operands could not be broadcast together with shapes (24479,) (4,)
认为错误可能是由于使用了numpy数组,但转换为python列表并没有帮助。
请帮助:)
答案 0 :(得分:0)
设置full=True
会返回一个5元组,其中只有第一个值是答案。根据{{3}},其他四个是
无论那意味着什么。来自奇异值分解的诊断信息,
所以要么不设置full=True
,要么做
polyfit_function, *diagnostics = np.polyfit(flux_1[i,j,:], nonlin, 3, full=True)