Numpy.ndarray 对象不可调用错误原因
Posted
技术标签:
【中文标题】Numpy.ndarray 对象不可调用错误原因【英文标题】:Numpy.ndarray object is not callable error reason 【发布时间】:2020-11-23 13:00:25 【问题描述】:我正在实现无味卡尔曼滤波器,并在预测步骤中为非线性函数“g”收到此错误“numpy.ndarray object is not callable”。
enter image description here
我还附上了出现此错误的代码。任何帮助将不胜感激。谢谢!
【问题讨论】:
您能否添加您的代码以便重新创建问题? 是的,请检查下面的代码: gx = np.array([g_E, g_R]) Q = np.diag([0.1,0.1,0.1,0.1,0.1,0.1]) #处理噪声协方差 self.sigmas_x = np.zeros((self.M,2*self.M + 1)) for i in range(2*self.M + 1): self.sigmas_x[:,i] = gx( self.sigmas[:,i],dt, u) g_E 和 g_R 是具有值的数组,我称之为的主要代码如下: for step in range(NUM_STEPS): kf.predict(dt=DT, u =np.array([sigma_f, V_x, V_dot_x])) 请指导我找出错误。 @jawaria 请将您的代码作为代码块放入您的答案中;在评论中阅读您的代码几乎是不可能的。 代码已添加到代码块中,您能否提出可能的解决方案。谢谢 请在此处阅读:***.com/help/minimal-reproducible-example 【参考方案1】:正如错误信息所说,gx
是一个 numpy 数组:
gx = np.array([g_E, g_R])
但你试图把它当作一个函数来调用:
self.sigmas_x[:,i] = gx(self.sigmas[:,i],dt, u)
因此错误。
【讨论】:
感谢您的反馈。你是对的,这是错误,但我不确定如何删除它,因为我在函数定义中添加了它,但它给出了错误。我还必须提到 g_E 和 g_R 是非常长的方程,然后它们在 gx 中合并为 gx =[g_E, g_R]。我得到的错误信息是:'builtin_function_or_method' object is not subscriptable' 好吧,你可以问一个关于新错误的新问题,或者更笼统地说“如何在 Python 中做 X”。以上是关于Numpy.ndarray 对象不可调用错误原因的主要内容,如果未能解决你的问题,请参考以下文章
TypeError:'numpy.ndarray'对象在我的代码中不可调用
TypeError:'numpy.ndarray'对象不可调用,无法显示窗口
如何解决 TypeError:'numpy.ndarray' 对象在 Python 上不可调用
错误:“numpy.ndarray”对象没有属性“iloc”