类型错误:'numpy.float64'对象不可调用

19
所以,我想做的是从给定范围的数组中获取特定位置的某些数字,并将它们放入一个方程中。
yy = arange(4)
xx = arange(5)
Area = ((xx[2] - xx[1])(yy[2] + yy[1])) / 2

我试着运行它,然后出现了这个错误。。
----> ((xx[2] - xx[1])(yy[2] + yy[1])) / 2
TypeError: 'numpy.int64' object is not callable

我遇到了一个错误..我该如何在一个数组中使用特定的数字并将它们放入一个方程中?
4个回答

33

Python并不遵循书面数学的相同规则,您必须明确指示乘法。

错误的:

(a)(b)

(除非a是一个函数)

好的:

(a) * (b)

28

当你的函数名称与返回值相同时,也会发生此错误。

def samename(a, b):
    samename = a*b
    return samename

我可能犯了一个超级菜鸟的错误,我很好奇这个答案会有多少帮助。


2
我已经使用Python 5年了,但最近犯了一个错误...在尝试解决问题时,发现了这个答案,非常有帮助... - kibitzforu

11

当你进行乘法运算时,你缺少了*号,请尝试:

import numpy as np
yy = np.arange(4)
xx = np.arange(5)
Area = ((xx[2] - xx[1])*(yy[2] + yy[1])) / 2

5
这可能是因为您覆盖了试图调用的函数的名称。
例如:
def x():
    print("hello world")
...
x = 10.5
...
x()
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
 in 
      2     print("hello world")
      3 x = 10.5
----> 4 x()

TypeError: 'float' object is not callable

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接