您好我正在尝试创建一个带状矩阵 - 当我尝试提取上对角线并向数组添加零时,我得到以下错误 - “TypeError:'numpy.ndarray'对象不可调用”
>>> A = np.eye(5, k=-1) -2 * np.eye(5) + np.eye(5, k=1)
>>> udA = np.insert (np.diag(A, 1), 0, 0)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'numpy.ndarray' object is not callable
>>>
我做错了什么 - 我对python很新。谢谢。
答案 0 :(得分:0)
您使用的是numpy
个版本?在我的版本(1.9)中,您的代码可以正常工作。
我认为在np.diag
函数中使用insert
是个问题。
在1.9版本中,np.diag
有此警告:
如果您使用此功能,请参阅
numpy.diagonal
的更详细文档 函数提取对角线并希望写入结果数组; 是否返回副本或视图取决于你的numpy版本 正在使用。
我认为在新版本中尝试在可能被指定用于生成此错误的上下文中使用np.diag
。尝试:
np.diag(A,1) = 0
这可能会产生同样的错误。
早先有关于这个问题的问题 - 我们需要找到一个好问题。