gpt4 book ai didi

python - NetworkX:部分失败的图/网络的邻接矩阵

转载 作者:行者123 更新时间:2023-11-28 21:46:50 25 4
gpt4 key购买 nike

回想一下,如果两个节点相连,则邻接矩阵为我们提供 1,否则为 0,我想为一个包含所有节点的正则图计算一个矩阵 active,还有一个用于同一个图,其中一些节点失败

让我们考虑一个 2x2 节点的格子网络。它的邻接矩阵(A)是:

0  1  1  0
1 0 0 1
1 0 0 1
0 1 1 0

生成此图: enter image description here

现在,让我们删除节点 0:

G.remove_node(0)

这就是新的邻接矩阵 (A1) 的样子:

0  0  1
0 0 1
1 1 0

返回此图: enter image description here

现在,这两个矩阵的大小明显不同。

我的问题:如何确保 Matrix A1 与 Matrix A 的大小相同?也就是说,如果节点 0 由于失败而不会出现,我希望将 0 放置在 A1 < em>对应于第0行和列,因此矩阵的大小保持不变。为了比较和计算的目的,我需要这样做。但要做到这一点,我假设我需要访问创建邻接矩阵的函数。我可以用更简单的方法来做吗?

节点 0 失败的示例:

0  0  0  0
0 0 0 1
0 0 0 1
0 1 1 0

这就是我创建 2x2 网络并生成邻接矩阵的方式:

import networkx as nx

N=2
G=nx.grid_2d_graph(N,N)
pos = dict( (n, n) for n in G.nodes() )
labels = dict( ((i,j), i + (N-1-j) * N ) for i, j in G.nodes() )
nx.relabel_nodes(G,labels,False)
inds=labels.keys()
vals=labels.values()
inds.sort()
vals.sort()
pos2=dict(zip(vals,inds))
nx.draw_networkx(G, pos=pos2, with_labels=True, node_size = 200)

A=nx.adjacency_matrix(G)
A.toarray()

#G.remove_node(i) to remove node i

最佳答案

尝试 G.remove_edges_from(G.edges(0)) 这将删除 0 的所有边而不是整个节点。然后生成邻接矩阵。

关于python - NetworkX:部分失败的图/网络的邻接矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37327360/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com