2
scipy 스파 스 배열 구성시 복사 인수의 기능은 무엇입니까?scipy 스파 스 행렬, 복사 인수
scipy.sparse.lil_matrix(arg1, shape=None, dtype=None, copy=False)
아무 것도 보이지 않습니다!
다른 하나에서 스파 스 매트릭스를 구성하고 명시 적으로 copy = False로 설정하면 하나의 매트릭스를 변경해도 다른 하나가 변경되지 않습니다.
import scipy.sparse as sp
import numpy as np
A = sp.csc_matrix(np.array([[1,0],[0,0]]))
B = sp.csr_matrix(A, copy=False)
B[1,1] = 1 #editing B should change A but it does not
print A.data, B.data #these values are different
감사
은 어쩌면 내가 del'의 작동 방식을'이해하지 않지만, 다음은 나 데이터도'복사본 = FALSE '가 지정 복사를 의미한다 : '인쇄 S.todense을 () S2 = sp.sparse.csr_matrix (S, copy = False), ' 'del S.data, S.indices, S.indptr, S; ' 'print S2.todense() # <- 첫 번째 인쇄와 동일 함, ' – gerowam
Python은 모든 객체에 대한 참조 횟수를 유지합니다. 예 : 'del S.data'는 대응하는 배열의 참조 카운트가 1 씩 감소하고'.data' 속성이 객체에서 제거됩니다. 다른 객체가이 동일한 배열을 가리 키지 않으면 참조 카운트가 0으로 떨어지고 가비지 수집됩니다. 그러나 다른 객체가 그것을 가르키면 배열은 가비지 수집되지 않을 것이고, 속성을 제거했기 때문에 더 이상 접근 할 수 없다하더라도'S2'가 사용하기 위해 유지됩니다. – Jaime