首页 > 编程知识 正文

复杂网络和神经网络区别,复杂网络分析与应用

时间:2023-05-05 08:26:31 阅读:141859 作者:4540

本博客涉及python的复杂网络分析工具network的网络

节点和边节点度集合系数的最短距离author:xiao黄缓慢而坚实地生长

首先导入相关的包。

importnetworkxasnximportnumpyasnp #数值计算import scipy as sp #科学计算import matplotlib.pyplot as plt #绘图以美国空手道俱乐部的示例进行说明

空手道网络是复杂网络分析中常用的一个实例网络,用于分析节点中心性和社区结构等问题。 因此,networkx也附带空手道俱乐部网络。

g=NX.Karate_club_graph(#美国空手道俱乐部nx.draw(g ) ) g ) plt.show )的图片如下所示:

可以对上述网络进行参数的变更等操作。 代码如下所示。

#可选布局fig,ax=PLT.subplots (fig size=(8,6 ) ) layout=[ NX.shell _ layout,nx.circular_layout,NX NX.spring _ layout ] pos=layout [5] [ g ] #每个节点的位置坐标nodeid=list(g.nodes () ) node_size=[g.zjdc(i ) I ) ' line_color': 'grey ',' linewidths': 0.1,' width'3360.1,' font_color': 'w' #字体颜色(NX )

节点和边#节点的数量N=g.number_of_nodes () len (g.nodes ) ) #网络中的边的数量L=g.number_of_edges ) ) len )

#节点度G.zjdc(#返回所有节点度g.zjdc ) #返回特定节点度分布图的代码为:

#度分布图degs=dict(NX.zjdc(g ) ) print (zjdcofeachnode : )、degs (print ) ) averagezjdc3360 )、NP.mean (list (dst )

最短距离节点之间的最短距离dij表示离节点I最少可以到达节点j的距离。

介绍几个基本函数

#返回特定节点之间最短距离的#NX.shortest_path_length(g,source=1, target=2) #返回特定节点与所有其他节点之间的最短距离) NX.shortest_path_length ) g source=1) #所有节点之间的最短距离# NX.shortest _ path 两个节点之间的最短距离D12=NX.shortest_path_length(g,返回source=2的d12 ) #节点之间的平均最短距离avg _ d=NX.average _ shortest _ path path

avg _ d=NX.average _ shortest _ path _ length (g ) #最短距离分布pair _ d=NX.shortest _ path _ length (g ) # 任意两个节点之间的距离DD=I(forIing ).reshape(-1 ) print (NP.mean ) DD ) ) bins=NP.arange(-0.5,max ) DD ) 1.5,1.0

聚合系数公式基本上可以找到,但在这里不放

#集成系数#NX.clustering(g )所有节点的集成系数#NX.clustering(g,1 ) )返回特定节点的集成系数的统计分布图

cc=dict(NX.clustering ) g ) )打印) clusteringcoefficientofeachnode : ), cc ) print ) averageclusteringcoefficicication NP.mean (list (cc.values ) ) )统计分布图PLT.figure ) figsize=) 9,5 ) 1 ) PLT.hist ) cc bins=10 ) PLT.xlabel (clusteringcoefficennt ) (PLT.ylabel ) Frequency ) ) PLT.title ) clusteringct 2 ) PLT.Scatter([degs[I]forIing]、[cc[i] for i in g]、c='g ' ) PLT.xlabel('k ' ) #度数PLT.ylabel ) )

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。