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”

无法将 NumPy 数组转换为张量(不支持的对象类型 numpy.ndarray)错误

Numpy Ndarray 对象