TypeError:'numpy.ndarray'对象不可调用 - 使用带状/稀疏矩阵

时间:2016-03-10 21:56:30

标签: python numpy matrix

您好我正在尝试创建一个带状矩阵 - 当我尝试提取上对角线并向数组添加零时,我得到以下错误 - “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很新。谢谢。

1 个答案:

答案 0 :(得分:0)

您使用的是numpy个版本?在我的版本(1.9)中,您的代码可以正常工作。

我认为在np.diag函数中使用insert是个问题。

在1.9版本中,np.diag有此警告:

  

如果您使用此功能,请参阅numpy.diagonal的更详细文档   函数提取对角线并希望写入结果数组;   是否返回副本或视图取决于你的numpy版本   正在使用。

我认为在新版本中尝试在可能被指定用于生成此错误的上下文中使用np.diag。尝试:

np.diag(A,1) = 0

这可能会产生同样的错误。

早先有关于这个问题的问题 - 我们需要找到一个好问题。

fill off diagonal of numpy array fails