欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

networkx 的基本操作

程序员文章站 2024-03-15 21:17:06
...

最近在学习中用到了networkx,因此写一篇博客来记录一下学习知识。


生成图

一个图包括了节点和边,以及节点和边的属性。权值是属性的一种。因此要生成一个图,就需要生成节点和边,并设置好属性。

- 生成空图

import networkx as nx
g = nx.Graph()

- 利用边生成图

f = nx.Graph([(1,2),(2,3),(1,3)])

上述代码生成了3个节点和3条边

- 利用graph.add_edge()和graph.add_node()生成节点和边

k = nx.Graph()
k.add_node(1)
k.add_node(2)
k.nodes()
>>>NodeView((1, 2))
k.add_edge(1,2)
k.edges()
>>>EdgeView([(1, 2)])

我们看到了graph.edges()和graph.nodes()可以用来查看图的边和节点数。
另外我们需要注意的是在添加边时,如果(a,b)为需要添加的边,则在参数中要使用*edge

row=(2,3)
k.add_edge(*row)
k.edges()
>>>EdgeView([(1, 2), (2, 3)])
k.add_edge((2,3),(3,4))
k.edges()
>>>EdgeView([(1, 2), (2, 3),((2,3),(3,4))])

ps:之前写的忘记保存,心累

  • 查找与节点相连的节点与边
for ser_node in graph[node]:
    graph[ser_node]
    graph[node][ser_node]

通过上述办法可以获取与节点node相连的节点与边。
获得与节点相连的边或者指定排除某个节点的方法还可以使用nbunch。

edges = graph.edges(nbunch=[node,])
相关标签: networkx