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

复杂网络

程序员文章站 2022-06-01 15:29:10
...

NetworkX是一个用Python语言开发的图论与复杂网络建模工具,内置了常用的图与复杂网络分析算法,可以方便的进行复杂网络数据分析、仿真建模等工作。networkx支持创建简单无向图、有向图和多重图(multigraph);内置许多标准的图论算法,节点可为任意数据;支持任意的边值维度,功能丰富,简单易用。

1.安装networkx包

2.

G = nx.Graph()                 #建立一个空的无向图G
G.add_node(1)                  #添加一个节点1
G.add_edge(2,3)                #添加一条边2-3(隐含着添加了两个节点2、3)
G.add_edge(3,2)                #对于无向图,边3-2与边2-3被认为是一条边
print "nodes:", G.nodes()      #输出全部的节点: [1, 2, 3]
print "edges:", G.edges()      #输出全部的边:[(2, 3)]
print "number of edges:", G.number_of_edges()   #输出边的数量:1

有向图:

G = nx.DiGraph()
G.add_node(1)
G.add_node(2)
G.add_nodes_from([3,4,5,6])
G.add_cycle([1,2,3,4])
G.add_edge(1,3)
G.add_edges_from([(3,5),(3,6),(6,7)])

有向图转无向图与无向图转有向图:

  • Graph.to_undirected()
  • Graph.to_directed()

加权图:

有向图和无向图都可以给边赋予权重,用到的方法是add_weighted_edges_from,它接受1个或多个三元组[u,v,w]作为参数,其中u是起点,v是终点,w是权重

 

 

3.以中医方向为例

例如构建中医方剂网络:方剂学是研究中药方剂租房、变化和临床应用规律的一门学科,主要包括方剂组成的原则、使用及变化等。中药方剂学网络的构建主要有中药-中药、中药-方剂以及方剂-方剂三种。中药-中药网络中将方剂中每一味药抽象为节点,根据是否在同一方剂中确定各味药节点之间是否存在边关联,因此由不同方剂抽象出的完全图相互关联,进而形成中药复杂网络。

中药-方剂网络构建则将单味药及方剂分别作为节点,根据单味药与方剂的从属关系进行关联。

方剂-方剂网络则视方剂为节点,根据不同方剂间是否存在同味药进行关联

 

复杂网络

复杂网络

复杂网络




















 

相关标签: 复杂网络