【问题标题】:Why is it returning this command when it shouldn't? 'numpy.ufunc' object is not subscriptable为什么它不应该返回这个命令? “numpy.ufunc”对象不可下标
【发布时间】:2020-02-06 03:29:54
【问题描述】:

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

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

【问题讨论】:

  • 错字:np.logical_and(Model&gt;0,Model&lt;x)中需要括号
  • 以前试过这个。它实际上不起作用..
  • 它应该可以修复这个错误。如果它没有做你想做的事,那就是逻辑错误。
  • 我现在这样说它告诉我 ``` if np.logical_and((Model>0),(Model
  • 您期待什么? np.logical_and() 返回一个与Model 形状相同的数组。

标签: python numpy logical-operators finance


【解决方案1】:

这是您使用的括号的问题。看看它在错误中是如何引用下标的,它使用[] 而不是()

TypeError: 'numpy.ufunc' object is not subscriptable:
    if np.logical_and[Model>0,Model<x]:

使用括号 () 将调用函数而不是尝试下标:

if np.logical_and(Model>0,Model<x):

【讨论】:

    猜你喜欢
    • 2021-04-27
    • 2012-05-11
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 2020-11-18
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    相关资源
    最近更新 更多