关于networkx返回图的邻接矩阵问题可以通过以下步骤来进行操作:
- 导入networkx模块
首先要导入networkx模块,使用下面的代码:
import networkx as nx
- 创建一个图
可以使用networkx的函数来创建一个图。下面是个例子:
G = nx.Graph()
可以用添加边的方式加入图的节点和边,例如:
G.add_nodes_from([1,2,3])
G.add_edge(1,2)
G.add_edge(2,3)
G.add_edge(1,3)
这样我们通过add_edge方法添加了3个节点和3条边,比如我们可以用nodes 和 edges函数来查看节点和边:
print(f'G.nodes:\n {G.nodes}')
print(f'G.edges:\n {G.edges}')
结果如下:
G.nodes:
[1, 2, 3]
G.edges:
[(1, 2), (1, 3), (2, 3)]
此时,G就是一个包含3个节点和3条边的图。
- 生成邻接矩阵
使用networkx的to_numpy_matrix方法返回图的邻接矩阵,如下所示:
A = nx.to_numpy_matrix(G)
print(f'G的邻接矩阵为:\n {A}')
运行结果为:
G的邻接矩阵为:
[[0. 1. 1.]
[1. 0. 1.]
[1. 1. 0.]]
此时,A就是邻接矩阵。
- 自定义邻接矩阵
使用networkx的adjacency_matrix方法,可以返回一个自定义邻接矩阵。可以使用以下代码来实现:
B = nx.adjacency_matrix(G, nodelist=[1,2,3]) #nodelist指定了节点的次序
print(f'自定义邻接矩阵为:\n {B.todense()}')
该方法根据nodelist参数指定的节点次序生成邻接矩阵,其余节点都为零。输出结果为:
自定义邻接矩阵为:
[[0 1 1]
[1 0 1]
[1 1 0]]
以上就是关于networkx返回图的邻接矩阵问题的完整攻略。还有一个简单的例子:
import networkx as nx
G = nx.DiGraph()
G.add_edges_from([(1,2),(2,3),(3,1)])
print(nx.adjacency_matrix(G).todense())
输出结果为:
[[0 1 0]
[0 0 1]
[1 0 0]]
其中,导入networkx模块同上,创建一个有向图,像第二部分所示,运行代码得到图的邻接矩阵。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:关于networkx返回图的邻接矩阵问题 - Python技术站