给定邻接矩阵和顶点的新排序我们如何在python中置换图形?这个任务有没有库?
答案 0 :(得分:3)
您可以手动构建新的邻接矩阵。 old
是旧的邻接矩阵,perm
是存储每个新顶点的旧名称的向量,也就是说,如果顶点j
移动到顶点i
那么perm[i] == j
。
import numpy as np
def rearrange(old, perm):
n = old.shape[0]
new = np.zeros_like(old)
for x in xrange(n):
for y in xrange(x+1): # only need to traverse half the matrix
# the matrix is symmetric (because of undirectedness)
new[y, x] = new[x, y] = old[perm[x], perm[y]]
return new
(请注意,我假设您将邻接矩阵存储为n
×n
numpy数组中的密集矩阵。此外,对于Python 3.x,{{1}应该是xrange
。)