我一直在观察我的代码中的一些奇怪的行为,这些行为一直困扰着我。以下......
xml.resume()
我希望from scipy.sparse import csr_matrix
A = csr_matrix([[1,2,0],[0,0,3],[4,0,5]])
B = A
B[0,0] = 99
能够返回原始矩阵(没有更新的99值),但实际上我得到了这个
A.toarray()
发生了什么事?
答案 0 :(得分:2)
语句b = a
为b
提供与a
相同的引用。
即,它们都指向内存中的同一个对象。
对一个进行的任何更改显然会反映在另一个中,因为它们是相同的而不仅仅是相同的。
相反,请使用b=a.copy()
。这会将b
的副本传递到a
。