Skip to main content
 首页 » 编程设计

Python计算顶点度数矩阵

2025年05月04日14daizhj

我目前正在尝试编写代码来计算度矩阵,这样我就可以计算拉普拉斯 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)