Python 类型错误:';numpy.ndarray和#x27;对象不可调用-使用带状/稀疏矩阵

Python 类型错误:';numpy.ndarray和#x27;对象不可调用-使用带状/稀疏矩阵,python,numpy,matrix,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) 回溯(最近一次呼叫最后一次): 文件“”,第1行,在 TypeError:“numpy.ndarray”对象不可调用 >>> 我做错了什么?我对python非常陌生。多谢各位 您使用的是什

您好,我正在尝试创建带状矩阵-当我尝试提取上对角线并向数组中添加零时,我得到以下错误-“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) 回溯(最近一次呼叫最后一次): 文件“”,第1行,在 TypeError:“numpy.ndarray”对象不可调用 >>>
我做错了什么?我对python非常陌生。多谢各位

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

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

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

如果使用此选项,请参阅有关
numpy.diagonal
的更详细文档 函数提取对角线并希望写入结果数组; 它返回的是副本还是视图取决于您使用的numpy版本 正在使用

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

np.diag(A,1) = 0
这可能会产生同样的错误

关于这个问题,以前有过一些问题——我们需要找到一个好的问题


我正在使用10.1.1-我加载了一个新的控制台,代码运行了!在我加载它之前,虽然np.diag(A,1)=0确实产生了相同的错误-感谢您的时间音,如
np.diag
np.insert
在某个点被重新分配,所以它是一个数组而不是一个函数。
np.diag(A,1) = 0