欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    python复杂网络分析库NetworkX.docx

    • 资源ID:11878442       资源大小:161.29KB        全文页数:16页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    python复杂网络分析库NetworkX.docx

    1、python复杂网络分析库NetworkXpython 复杂网络分析库 NetworkX阅读目录无向图有向图加权图经典图论算法计算强连通、弱连通子图条件过滤pred , succNetworkX 是一个用 Python 语言开发的图论与复杂网络建模工具,内置了常用的图与复 杂网络 分析算法 ,可以方便的进行复杂网络数据分析、 仿真建模等工作。 networkx 支持创 建简单无向图、有向图和多重图( multigraph );内置许多标准的图论算法,节点可为任 意数据;支持任意的边值维度,功能丰富,简单易用。引入模块import networkx as nxprint nx回到顶部无向图例 1

    2、 :#!-*- coding:utf8-*-import networkx as nx import matplotlib.pyplot as pltprint number of edges: , G.number_of_edges() #输出边的数量: 1 nx.draw(G) plt.savefig( wuxiangtu.png )plt.show()输出1nodes: 1, 2, 32edges: (2, 3)3number of edges: 1例 2 :#-*- coding:utf8-*-#加点 #加点集合#加环#加边集合import networkx as nx import

    3、matplotlib.pyplot as plt 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) nx.draw(G) plt.savefig( youxiangtu.png ) plt.show()回到顶部 有向图 例 1 :#!-*- coding:utf8-*-import networkx as nximport matplotlib.pyplot as

    4、 pltG = 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) nx.draw(G)plt.savefig( youxiangtu.png )plt.show()注:有向图和无向图可以互相转换,使用函数:Graph.to_undirected()Graph.to_directed()例 2 ,例子中把有向图转化为无向图:#!-*- coding:utf8-*- import ne

    5、tworkx as nx import matplotlib.pyplot as pltG = 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)G = G.to_undirected()nx.draw(G)plt.savefig( wuxiangtu.png )plt.show()注意区分以下 2 例例 3-1#-*- coding:utf8-*-import networkx as

    6、 nximport matplotlib.pyplot as pltG = nx.DiGraph()road_nodes = a : 1, b : 2, c : 3 #road_nodes = a:1:1, b:2:2, c:3:3 road_edges = ( a , b ), ( b , c )G.add_nodes_from(road_nodes.iteritems() G.add_edges_from(road_edges)nx.draw(G)plt.savefig( youxiangtu.png ) plt.show()例 3-2#-*- coding:utf8-*-import n

    7、etworkx as nximport matplotlib.pyplot as pltG = nx.DiGraph()#road_nodes = a: 1, b: 2, c: 3 road_nodes = a :1:1, b :2:2, c :3:3 road_edges = ( a , b ), ( b , c )G.add_nodes_from(road_nodes.iteritems() G.add_edges_from(road_edges)nx.draw(G)plt.savefig( youxiangtu.png )plt.show()回到顶部edges_from ,它接 w 是权

    8、重。#建立一个空的无#添加一条边 2-3加权图有向图和无向图都可以给边赋予权重, 用到的方法是 add_weighted 受 1 个或多个三元组 u,v,w 作为参数,其中 u 是起点, v 是终点, 例 1 :#!-*- coding:utf8-*- import networkx as nximport matplotlib.pyplot as pltG = nx.Graph() 向图 G G.add_edge(2,3) (隐含着添加了两个节点 2、3) G.add_weighted_edges_from(3, 4, 3.5),(3, 5, 7.0) #对于无向图,边 3-2 与边 2-3

    9、 被认为是一条边print G.get_edge_data(2, 3)print G.get_edge_data(3, 4)print G.get_edge_data(3, 5) nx.draw(G)plt.savefig( wuxiangtu.png ) plt.show()输出 weight : 3.5回到顶部经典图论算法计算计算 1 :求无向图的任意两点间的最短路径# -*- coding: cp936 -*- import networkx as nx import matplotlib.pyplot as plt #计算 1:求无向图的任意两点间的最短路径G = nx.Graph()

    10、G.add_edges_from(1,2),(1,3),(1,4),(1,5),(4,5),(4,6),(5,6)path = nx.all_pairs_shortest_path(G)print path1计算 2 :找图中两个点的最短路径import networkx as nxG=nx.Graph()G.add_nodes_from(1,2,3,4)G.add_edge(1,2)G.add_edge(3,4)try :n=nx.shortest_path_length(G,1,4)print nexcept nx.NetworkXNoPath:print No path回到顶部 强连通、

    11、弱连通强连通:有向图中任意两点 v1 、 v2 间存在 v1 到 v2 的路径( path )及 v2 到 v1 的 路径。弱联通:将有向图的所有的有向边替换为无向边,所得到的图称为原图的基图。如果一个有向图的基图是连通图,则有向图是弱连通图。距离例 1 :弱连通#-*- coding:utf8-*-import networkx as nximport matplotlib.pyplot as plt#G = nx.path_graph(4, create_using=nx.Graph()#0 1 2 3G = nx.path_graph(4, create_using=nx.DiGraph

    12、() #默认生成节点 0 1 23,生成有向变 0-1,1-2,2-3G.add_path(7, 8, 3) #生成有向边: 7-8-3for c in nx.weakly_connected_components(G):print cprint len(c) for c in sorted(nx.weakly_connected_components(G), key=len, reverse=True)nx.draw(G)plt.savefig( youxiangtu.png )plt.show()执行结果set(0, 1, 2, 3, 7, 8)6例 2 :强连通#-*- coding:u

    13、tf8-*-import networkx as nx import matplotlib.pyplot as plt#G = nx.path_graph(4, create_using=nx.Graph()#0 1 2 3G = nx.path_graph(4, create_using=nx.DiGraph() G.add_path(3, 8, 1)#for c in nx.strongly_connected_components(G):# print c#print len(c) for c in sorted(nx.strongly_connected_components(G),

    14、key=len, reverse=True)con = nx.strongly_connected_components(G) print conprint type(con)print list(con)nx.draw(G)plt.savefig( youxiangtu.png )plt.show()执行结果 set(8, 1, 2, 3), set(0)回到顶部 子图#-*- coding:utf8-*-import networkx as nximport matplotlib.pyplot as pltG = nx.DiGraph()G.add_path(5, 6, 7, 8)sub_

    15、graph = G.subgraph(5, 6, 8)#sub_graph = G.subgraph(5, 6, 8) #ok 一样nx.draw(sub_graph)plt.savefig( youxiangtu.png ) plt.show()回到顶部 条件过滤# 原图#-*- coding:utf8-*-import networkx as nximport matplotlib.pyplot as pltG = nx.DiGraph() road_nodes = a : id :1, b : id :1, c : id :3, d : id :4 road_edges = ( a ,

    16、b ), ( a , c ), ( a , d ), ( b , d )G.add_nodes_from(road_nodes)G.add_edges_from(road_edges) nx.draw(G)plt.savefig( youxiangtu.png ) plt.show()# 过滤函数#-*- coding:utf8-*- import networkx as nximport matplotlib.pyplot as pltG = nx.DiGraph()def flt_func_draw():flt_func = lambda d: d id != 1return flt_fu

    17、ncroad_nodes = a : id :1, b : id :1, c : id :3, d : id :4 road_edges = ( a , b ), ( a , c ), ( a , d ), ( b , d )G.add_nodes_from(road_nodes.iteritems() G.add_edges_from(road_edges)flt_func = flt_func_draw()part_G = G.subgraph(n for n, d in G.nodes_iter(data=True) if flt_func(d) nx.draw(part_G)plt.s

    18、avefig( youxiangtu.png )plt.show()回到顶部pred , succ#-*- coding:utf8-*-import networkx as nximport matplotlib.pyplot as pltG = nx.DiGraph()road_nodes = a : id : 1, b : id :1, c : id :3road_edges = ( a , b ), ( a , c ), ( c , d )G.add_nodes_from(road_nodes.iteritems()G.add_edges_from(road_edges)print G.

    19、nodes()print G.edges()printas pred , G.preda printbs pred , G.predb printcs pred , G.predc printds pred , G.predd printas succ , G.succa printbs succ , G.succbprintcs succ , G.succcprintds succ , G.succdnx.draw(G)plt.savefig( wuxiangtu.png ) plt.draw()结果1a,c, b, d2(a,c), (a, b), (c,d)34as pred5bs preda: 6cs preda: 7ds predc: 89as succc: , b: 10bs succ11cs succd: 12ds succ


    注意事项

    本文(python复杂网络分析库NetworkX.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开