我目前正在尝试编写代码来定义方程式,其中在两个条件下设置了一个输入,但是出现错误:
def findV (v_a,x,k,sig_a):
taxcorp=0.2
taxdiv=0.2
Modelequity=(e_function(v_a=v_a,sig_a=sig_a, r=rf, k=k,C=Intexp,taxcorp=0.2,taxdiv=0.2)+20, taxcorp, taxdiv)
#np.logical_and(Model>0,Model<x):
#all([Model>0 , Model<x]):
Model=np.float32(Modelequity[0])
#Model=np.logical_and[Model>0,Model<x]
if np.logical_and[Model>0,Model<x]:
#return((Equity-np.float32(Modelequity))*np.float32(Modelequity))
return((Equity-Model)*Model)
findV(v_a=0.01,x=0.02,k=0.02,sig_a=0.02)
我遇到这些错误:
/anaconda3/lib/python3.7/site-packages/ipykernel_launcher.py:9: RuntimeWarning: invalid value encountered in greater
if __name__ == '__main__':
/anaconda3/lib/python3.7/site-packages/ipykernel_launcher.py:9: RuntimeWarning: invalid value encountered in less
if __name__ == '__main__':
和
TypeError: 'numpy.ufunc' object is not subscriptable
答案 0 :(得分:0)
您使用的方括号有问题。看看错误指的是使用[]
而不是()
的下标。
TypeError: 'numpy.ufunc' object is not subscriptable:
if np.logical_and[Model>0,Model<x]:
使用括号()
将调用一个函数,而不是尝试对其进行下标:
if np.logical_and(Model>0,Model<x):