为什么不应该返回该命令? 'numpy.ufunc'对象不可下标

时间:2019-10-08 19:54:43

标签: python numpy logical-operators finance

我目前正在尝试编写代码来定义方程式,其中在两个条件下设置了一个输入,但是出现错误:

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

1 个答案:

答案 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):