[英]TypeError: 'float' object has no attribute '__getitem__'
[英]TypeError: 'float' object has no attribute '__getitem__' in defined function
我收到此错误消息TypeError:'float'对象没有属性' getitem '在我以前的模型运行中,相同的策略运行良好,因此我无法找出有什么区别。
r = 0.8
K1 = 100
K2 = 50
q = 1
E = r
l = 0.5
d = 100.
b1 = 0.05
b2 = 0.05
p = 50.
c = 300.
i = np.arange(0.,1.01,0.01)
OUTX = np.zeros(i.shape[0])
def I_test(r, K1, K2, E, l, d, b1, b2, p, c, q):
I= (1/b1*(d-p)) + ((K1- E*q*l/r)* E*q*l + (1/b1)* np.log(p/d)) + ((1-np.exp(-b2*E*q*(1-l)*(K2-E*q*(1-l)/r)/b2))) - c - c*E
return I
for i in np.arange(0,i.shape[0]):
I = I_test(r, K1, K2, E[i], l, d, b1, b2, p, c, q)
OUTX[i]= I[i]
在我看来,最后一行应该是
OUTX[i]= I
遍历参数值。
我自己找到了解决方案。 第一行中的定义不允许我调用参数E,因此我必须从i> E更改。在最后一行中,必须删除I的索引,然后计算正确(如Julien所评论) 。
E = np.arange(0.,1.0,0.1)
OUTX = np.zeros(E.shape[0])
def I_test(r, K1, K2, E, l, d, b1, b2, p, c, q):
I= (1/b1*(d-p)) + ((K1- E*q*l/r)* E*q*l + (1/b1)* np.log(p/d)) + ((1-np.exp(-b2*E*q*(1-l)*(K2-E*q*(1-l)/r)/b2))) - c - c*E
return I
for i in np.arange(0,E.shape[0]):
I = I_test(r, K1, K2, E[i], l, d, b1, b2, p, c, q)
OUTX[i]= I
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.