如何修复不同形状的操作数?

时间:2018-02-16 14:33:46

标签: python

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列表并没有帮助。

请帮助:)

1 个答案:

答案 0 :(得分:0)

设置full=True会返回一个5元组,其中只有第一个值是答案。根据{{​​3}},其他四个是

  

来自奇异值分解的诊断信息,

无论那意味着什么。

所以要么不设置full=True,要么做

之类的事情
polyfit_function, *diagnostics = np.polyfit(flux_1[i,j,:], nonlin, 3, full=True)