我有一些数据,我试图适应模型
这是我的代码的相关部分
path='D:/ParPhy/2-BESIII15_new.dat'
data = pd.read_table(path,header=None)
y=np.array(data[1])
x=np.array(data[0]**(1/2))
s=x**2
def F_w(s,alpha,m_p,gamma_p):
P_s=1+alpha*s
A=-m_p**2
B=complex(s-m_p**2,m_p*gamma_p)
return abs(P_s*A/B)**2
popt, pcov = curve_fit(F_w, x, y)
我一直收到类型错误:
“只有长度为1的数组可以转换为Python标量”关于“文件”D:/ PYTHON / Particle Physics / fit_2.py“,第31行,在F_w B =复数(s-m_p ** 2,m_p * gamma_p) )”
任何帮助将不胜感激 .
1 回答
函数
complex
收到一个标量,你传递的是一个numpy数组 . 您必须将complex
函数应用于数组的每个元素,如下所示: