📜  NetworkX:用于研究复杂网络的Python软件包

📅  最后修改于: 2020-04-16 01:10:37             🧑  作者: Mango

NetworkX是一个Python软件包,用于创建,操纵和研究复杂网络的结构,动力学和功能。它用于研究以节点和边的图表示的大型复杂网络。使用networkx,我们可以加载和存储复杂的网络。我们可以生成许多类型的随机和经典网络,分析网络结构,构建网络模型,设计新的网络算法并绘制网络。
软件包安装:

pip install networkx

创建节点

一次添加一个节点:

 G.add_node(1)

添加节点列表:

 G.add_nodes_from([2,3])

让我们在图G中创建节点。添加节点1,2,3,4,7,9之后

创建边缘

一次添加一条边:

G.add_edge(1,2)
G.add_edge(3,1)
G.add_edge(2,4)
G.add_edge(4,1)
G.add_edge(9,1)

添加边列表:

G.add_edges_from([[1,2 ,,(1,3)])

在添加边(1,2),(3,1),(2,4),(4,1),(9,1),(1,7),(2,9)之后

删除节点和边缘

可以使用以下任一功能来拆除图形:

Graph.remove_node(),Graph.remove_nodes_from(),
Graph.remove_edge()和Graph.remove_edges_from(

删除节点3

之后删除边(1,2)之后

# Python程序创建一个无向图,并向图中添加节点和边
# 导入包
import networkx
# 创建一个空的无向图
G = networkx.Graph()
# 添加节点
G.add_node(1)
G.add_node(2)
G.add_node(3)
G.add_node(4)
G.add_node(7)
G.add_node(9)
# 添加边缘
# 注意图是无向的,因此边缘节点的顺序无关紧要
G.add_edge(1,2)
G.add_edge(3,1)
G.add_edge(2,4)
G.add_edge(4,1)
G.add_edge(9,1)
G.add_edge(1,7)
G.add_edge(2,9)
# 获取图的所有节点
node_list = G.nodes()
print("#1")
print(node_list)
# 获取图形的所有边缘
edge_list = G.edges()
print("#2")
print(edge_list)
# 删除图的节点
G.remove_node(3)
node_list = G.nodes()
print("#3")
print(node_list)
# 删除图形的边缘
G.remove_edge(1,2)
edge_list = G.edges()
print("#4")
print(edge_list)
# 查找节点数
n = G.number_of_nodes()
print("#5")
print(n)
# 查找边数
m = G.number_of_edges()
print("#6")
print(m)
# 查找节点的度数
# d将存储节点2的度
d = G.degree(2)
print("#7")
print(d)
# 查找节点的所有邻居
neighbor_list = G.neighbors(2)
print("#8")
print(neighbor_list)
#删除所有节点和边
G.clear()

输出:

#1
[1、2、3、4、7、9]
#2
[(1,9),(1、2),(1、3),(1、4),(1、7),(2、4),(2、9)]
#3
[1、2、4、7、9]
#4
[(1、9),(1、4),(1、7),(2、4),(2、9)]
#5
5
#6
5
#7
2
#8
[4、9]

在下一篇文章中,我们将讨论如何创建加权图,有向图,多图。如何绘制图形。在以后的文章中,我们将看到如何使用内置函数,例如深度拳头搜索aka dfs,广度优先搜索aka BFS,dijkstra的最短路径算法。