我目前正在尝试编写代码来计算度矩阵,这样我就可以计算拉普拉斯 L = D - A,其中 D = 度矩阵,A = 邻接矩阵。
这将在我的谱聚类算法中使用。我正在使用 Python。所以对于这个玩具示例,我很难做到。任何人都可以提供一种有效的方法来执行此操作,或者是否有用于计算度矩阵的 API?我的问题很简单,什么是计算连接度矩阵的有效方法,或者是否有一个 python 模块?
例子:
import numpy as np
matrix = np.matrix('1, 1, 1, 1; 1, 0, 0, 0; 0, 0, 1, 1')
matrix =
1 1 1 1
1 0 0 0
0 1 0 1
0 0 1 1
我如何计算度数(矩阵)给我 5 3 4 4,它代表每个节点的连接度?谢谢。
请您参考如下方法:
有一个特殊的图形包networkx:
import networkx as nx
import numpy as np
m = np.matrix('1, 1, 1, 1;'
'1, 0, 0, 0;'
'0, 1, 0, 1;'
'0, 0, 1, 1')
G = nx.from_numpy_matrix(m)
nx.laplacian_matrix(G).toarray()
结果:
array([[ 3, -1, -1, -1],
[-1, 2, -1, 0],
[-1, -1, 3, -1],
[-1, 0, -1, 2]], dtype=int64)
