【问题标题】:Error in NumPy: 'numpy.ndarray' object is not callableNumPy 中的错误:“numpy.ndarray”对象不可调用
【发布时间】:2017-04-29 13:22:26
【问题描述】:

我正在处理一个古诺问题,但遇到了这个错误:

TypeError: 'numpy.ndarray' object is not callable

谁能帮我找出我遇到的错误?

【问题讨论】:

  • 你能发布整个错误回溯吗?
  • '---> 16 c1= broyden1(resid(c,p_node,alpha,eta,phi), c) 17 phi1= np.polynomial.chebyshev.chebval(p_node,c1) 18 q1 = phi1*c1 \scipy\optimize\nonlin.py in nonlin_solve(F, x0, jacobian,..) 274 275 dx = np.inf --> 276 Fx = func(x) 277 Fx_norm = norm(Fx) C: \Users\Gagan\Anaconda3\lib\site-packages\scipy\optimize\nonlin.py in (z) 270 271 x0 = _as_inexact(x0) --> 272 func = lambda z: _as_inexact(F(_array_like( z, x0))).flatten() 273 x = x0.flatten() 274 TypeError: 'numpy.ndarray' object is not callable'
  • @ElinaGilbert 格式化提示:代码 4 个空格,缩进代码 8 个空格。
  • broyden1 接受哪些参数?功能?初始值,args 元组?
  • @hpaulj 'broyden1' 采用函数和初始猜测值并返回求根解。这里我最初的猜测是 c=chebfit...

标签: python python-3.x numpy jupyter-notebook


【解决方案1】:

您的函数 resid 在调用时返回一个 numpy 数组。

您需要给 broyden 一个函数,但给了它一个被调用的函数,所以它不再是一个函数,但已经被评估为某个数组。这会导致 broyden1 调用生成的 numpy-array。

这不等于:

c1= broyden1(resid(c,p_node,alpha,eta,phi), c)
c1= broyden1(resid, c)

我在这里忽略了可能的后果。

【讨论】:

  • 您能否建议一个替代代码来解决同样的问题。实际上我的动机是找到一个系数 c 使 mr-mc = 0。另外,我已经尝试过 c1= broyden1(resid, c) 但它给出了错误的非收敛解决方案
猜你喜欢
  • 1970-01-01
  • 2019-09-04
  • 2021-06-11
  • 1970-01-01
  • 1970-01-01
  • 2021-12-23
  • 1970-01-01
  • 1970-01-01
  • 2021-02-23
相关资源
最近更新 更多