Python报”TypeError: ‘numpy.ndarray’ object is not callable “的原因以及解决办法
“TypeError: ‘numpy.ndarray’ object is not callable”可能是因为你试图像函数一样调用numpy的ndarray对象。常见的情况是,人们可能在不知不觉中覆盖了函数或者模块的名字,从而导致这种错误。
举例来说,你可能不小心将一个numpy数组赋值给了一个名为”numpy”的变量:
import numpy as np
numpy = np.array([1, 2, 3]) # 不建议这样做,这会覆盖numpy库的名称
result = numpy.zeros((3,3)) # 这将会引发错误:TypeError: 'numpy.ndarray' object is not callable
上面的错误在调用numpy.zeros函数时发生,因为”numpy”现在是一个numpy.ndarray对象,而不是你以为的numpy库。
解决方法主要有两步:
- 第一步是找到哪一个变量或函数名被错误地赋值为了一个numpy.ndarray对象。你需要检查你的代码,看看你是否不小心覆盖了numpy库或者其它应该是函数的名字。
- 第二步,当你找到被覆盖的名字后,你需要将它改为其它的名字,以避免命名冲突。对于上面的例子,我们可以改变变量名,避免使用库名作为变量名:
import numpy as np
numpy_array = np.array([1, 2, 3]) # 建议这样做,指定一个明显不同于库名的变量名
result = np.zeros((3,3)) # 这样就不会引发错误了,np.zeros被正确地调用
以上两步就是解决该问题的主要方法。但是,不要忽视这个错误的潜在含义:你在代码中可能某处不小心覆盖了重要的库或函数名。因此,需要注意的是,尽量避免使用简易的、可能和已有库或函数冲突的名称。
(scandir) Python os.scandir(扫描所有文件)方法详解 os scandir()方法使用指南 全网首发(图文详解1)
(frame什么意思) 解读Python中的frame是什么 Python 中的框架对象简介 全网首发(图文详解1)