1
나는 희소 행렬 A
을 csr_matrix 형식으로 가지고 있습니다. A
은 방향이 지정되지 않은 그래프의 가중치가있는 인접 행렬이므로 대칭 및 비 음수입니다. 그래프 Lapalican을 계산하고 싶습니다.스파 스 그래프를 얻는 방법 파이썬에서 라플라시안 매트릭스?
내가 코드는 아주 간단합니다 MATLAB, 작업을하는 데 사용 :
L = diag(sum(A,2)) - A % or L=diag(sum(A))-A because A is symmetric
그러나 우리가 파이썬에서 어떻게 할 수 있습니까? 파이썬에서 행렬이 희소하다. 나는 단지 추악한 해결책을 제시 할 수 있습니다 :
import numpy as np
import scipy.sparse as sps
L = sps.diags(np.reshape(np.array(A.sum(axis=1)), A.shape[0])) - A
누구보다 우아한 해결책을 알고 있습니까?
n,m = A.shape
diags = A.sum(axis=1)
D = sps.spdiags(diags.flatten(), [0], m, n, format='csr')
D - A
감사 : 작은 개선하여 방법과 매우 유사 (스파 스 모두 유지) - – rozyang