networkx基础用法:添加节点、添加边、删除节点、删除边、计算度、赋权重

涉及到的方法:

正常安装方法

pip3 install networkx

如果是pip用户就把pip3改成pip

如果报了一堆错看这里↓
networkx安装教程

添加节点和边的多种方法以及显示

import networkx as nx

G = nx.Graph() #创建一个空的图形

G.add_node(1)  #添加节点1

G.add_nodes_from([2, 3]) #添加边(2,3)

print(G.nodes)# 打印出所有的节点信息
G.add_edge(1,2) #添加边的另一种方法(1,2)
e = (2, 3)
G.add_edge(*e)   # unpack edge tuple* 
G.add_edges_from([(1, 2), (1, 3)]) #添加边的第三种方法,补全三角形对边
G.add_node("spam")            # adds node "spam"
G.add_nodes_from("spam")  # adds 4 nodes: 's', 'p', 'a', 'm'  把spam拆开4个点添加进去

print(G.nodes) # 打印出所有的节点信息

G.add_edge(3, 'm')  #给3和m之间添加一个边
#At this stage the graph G consists of 8 nodes and 3 edges, as can be seen by:
G.number_of_nodes() #计算节点数量
G.number_of_edges() #计算边的数量
print(G.number_of_nodes())  #打印出有多少个节点

#Four basic graph properties facilitate reporting: G.nodes, G.edges, G.adj and G.degree.
list(G.nodes)  #用list显示节点列表

结果:在这里插入图片描述
list只能显示最后一个list出的东西。

list(G.edges)
list(G.adj[1]) 
G.degree[1]  

在这里插入图片描述

删去节点和边

G.remove_node(2)
G.remove_nodes_from("spam")
list(G.nodes)

在这里插入图片描述
注意删掉节点2之后,所有和2相关的边会消失。
remove_nodes_from()会把所有括号里形成的子节点s,p,a,m也删去。但是生成时并不会在子母之间形成边。

在这里插入图片描述
如果这么写是错误的,查了一下边列表,居然是
在这里插入图片描述
太迷了。

再次运行又正常了
在这里插入图片描述
后来发现其实是每一个cell运行的顺序被我点乱了。在jupyter里及时已经运行完前面的但是每个cell不可以前后随便乱点。
重头运行一遍后:

确认是2已经被删除,且和2相关的边也一并被删除

继续↓
给边增添value

G[1][3]['color'] = "blue"
G.edges[1, 2]['color'] = "red"

也可以在创建的时候就加好。

 >>> FG = nx.Graph()
 >>> FG.add_weighted_edges_from([(1, 2, 0.125), (1, 3, 0.75), (2, 4, 1.2), (3, 4, 0.375)])
 >>> for n, nbrs in FG.adj.items():
                    for nbr, eattr in nbrs.items():
                          wt = eattr['weight']
                          if wt < 0.5: print('(%d, %d, %.3f)' % (n, nbr, wt))

效果:
在这里插入图片描述

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页