python 报错'float' object has no attribute '__getitem__' 请问是什么问题 怎么修改
如题,我的程序中的一段是这样的:h=0fori,xinenumerate(c):forj,yinenumerate(cvar):g=finalresult[h]*1Z[i...
如题,我的程序中的一段是这样的:
h=0
for i, x in enumerate(c):
for j, y in enumerate(cvar):
g=finalresult[h]*1
Z[i][j] = g #/1e6
h+=1
这个: Z[i][j] = g地方总是报错'float' object has no attribute '__getitem__' 。 finalresult的数据类型是python原有的那种。numpy.float64
本来的问题是:c和cvar是并不等长的变量finalresult是如下得来,相当于,每个c和cvar排列组合得来的。想用c和cvar做x和y的坐标轴,画出3d finalresult的曲面。但是由于c和cvar不是等长,遇到了一些问题。
finalresult=[]
for i in range(0,9,+1):
for j in range(0,25,+1):
alphaValue = c[i]*(c[i]*(1-c[i])/cvar[j]-1)
betaValue = (1-c[i])*(c[i]*(1-c[i])/cvar[j]-1)
print c[i], cvar[j]
print alphaValue, betaValue
Sl_s=0
for k in range(1,51,+1):
betaPrimitive=[]
denominator=special.beta(alphaValue,betaValue)*alphaValue
for l in range(0,51,+1):
r=hyp2f1(alphaValue, 1-betaValue, 1+alphaValue, f_[l])*f_[l]**alphaValue/denominator
r_f=float(r)
betaPrimitive.append(r_f)
result = (betaPrimitive[k-1]*Phi_[k-1]+betaPrimitive[k]*Phi_[k])*0.5*(f_[k-1]-f_[k])
Sl_s += result
#print Sl_s
result_1 = (Sl_[0]-Sl_s)
#Alternativ: result_1 = Sl_[0]+np.trapz(betaPrimitive*Phi_,f_)
finalresult.append(result_1) 展开
h=0
for i, x in enumerate(c):
for j, y in enumerate(cvar):
g=finalresult[h]*1
Z[i][j] = g #/1e6
h+=1
这个: Z[i][j] = g地方总是报错'float' object has no attribute '__getitem__' 。 finalresult的数据类型是python原有的那种。numpy.float64
本来的问题是:c和cvar是并不等长的变量finalresult是如下得来,相当于,每个c和cvar排列组合得来的。想用c和cvar做x和y的坐标轴,画出3d finalresult的曲面。但是由于c和cvar不是等长,遇到了一些问题。
finalresult=[]
for i in range(0,9,+1):
for j in range(0,25,+1):
alphaValue = c[i]*(c[i]*(1-c[i])/cvar[j]-1)
betaValue = (1-c[i])*(c[i]*(1-c[i])/cvar[j]-1)
print c[i], cvar[j]
print alphaValue, betaValue
Sl_s=0
for k in range(1,51,+1):
betaPrimitive=[]
denominator=special.beta(alphaValue,betaValue)*alphaValue
for l in range(0,51,+1):
r=hyp2f1(alphaValue, 1-betaValue, 1+alphaValue, f_[l])*f_[l]**alphaValue/denominator
r_f=float(r)
betaPrimitive.append(r_f)
result = (betaPrimitive[k-1]*Phi_[k-1]+betaPrimitive[k]*Phi_[k])*0.5*(f_[k-1]-f_[k])
Sl_s += result
#print Sl_s
result_1 = (Sl_[0]-Sl_s)
#Alternativ: result_1 = Sl_[0]+np.trapz(betaPrimitive*Phi_,f_)
finalresult.append(result_1) 展开
3个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询