python networkx 复杂网络分析应用

本文介绍了Python的NetworkX库,用于创建、操作和研究复杂网络。内容包括NetworkX的基本操作,如节点、边的添加和属性,图的遍历,有向图与度数,以及通过Watts-Strogatz小世界图和Girvan-Newman社区检测算法的进阶应用。此外,还强调了网络的可视化和图的生成方式。
摘要由CSDN通过智能技术生成

更多内容请查看官方文档,以下内容参考
https://networkx.github.io/

networkx简单介绍

networkX是一个Python包,用于创建、操作和研究复杂网络的结构、动态和功能。
安装只需在控制台使用pip安装即可,问题不大。

pip install networkx

不过复杂网络毕竟还是要可视化的,这边建议您同时使用python图形库matplotlib

import networkx as nx
import matplotlib.pyplot as plt

networkx基本操作

根据图的定义,图是节点的集合,并且节点间有依赖关系(边)。
在NetworkX中,节点可以是任何可刷新的对象,如文本字符串、图像、XML对象、另一个图(Graph)、自定义节点对象等。

使用如下代码,即可生成一个图。

G = nx.Graph() 

节点(Nodes)

使用如下代码,即可生成包含三个节点的图,当然没有边连接的图就看起来特别搞笑。

import networkx as nx
import matplotlib.pyplot as plt

G = nx.Graph() #生成图

G.add_node(1) #添加一个节点
G.add_nodes_from([2, 3]) #添加列表里的节点

#可视化
nx.draw(G)
plt.show()

边(Nodes)

直接定义边连接,无需重新定义节点。

import networkx as nx
import matplotlib.pyplot as plt
G = nx.Graph() #生成图

G.add_edge(1, 2) #添加一条边
G.add_edges_from([(1, 3), (2, 3)]) #添加列表里的边

#可视化
nx.draw(G)
plt.show()

节点与边的属性信息

如下代码可以为图、节点、边添加属性信息。

import networkx as nx
import matplotlib.pyplot as plt

#为图添加属性
G = nx.Graph(day="Friday")
print(G.graph)

#为节点添加属性
G.add_node(1, time='5pm')
G.add_nodes_from([3], time='2pm')
print(G.nodes[1])
G.nodes[1]['room'] = 714
print(G.nodes.data())

#为边添加属性
G.add_edges_from([(1, 2), (1, 3)])
print(G.edges[1, 2]) 

G.edges[1, 2]['color'] = "red" #为边添加属性
print(G.edges[1, 2]) 
>>> {
   'day': 'Friday'}
>>> {
   'time': '5pm'}
>>> NodeDataView({
   1: {
   'time': '5pm', 'room': 714}, 3: {
   'time': '2pm'}})
>>> {
   }
>>> {
   'color': 'red'}

节点与边的其他操作

当添加新的节点、边时,networkx会忽略任何已经存在的节点、边。

import networkx as nx
import matplotlib.pyplot as plt

G = nx.Graph(
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值