问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何用python实现网络图节点权重的添加以及如何把一个非连通的大网络图分成多个小网络图

发布网友 发布时间:2022-04-13 00:01

我来回答

2个回答

热心网友 时间:2022-04-13 01:30

networkx是python的一个库,它为图的数据结构提供算法、生成器以及画图工具。近日在使用ryu进行最短路径获取,可以通过该库来简化工作量。该库采用函数方式进行调用相应的api,其参数类型通常为图对象。

函数API的调用,按照以下步骤来创建构建图:

1.networkx的加载

在python中调用networkx通常只需要将该库导入即可

import networkx as nx

2.图对象的创建

networkx提供了四种基本图对象:Graph,DiGraph,MultiGraph,MultiDiGraph。

使用如下调用方式,可以创建以上四种图对象的空图。

G=nx.Graph()
G=nx.DiGraph()
G=nx.MultiGraph()
G=nx.MultiDiGraph()
在 networkx中,图的各个节点允许以哈希表对象来表示,而对于图中边的各个参量,则可以通过与边相关联的方式来标识,一般而言,对于权重,用weight作为keyword,而对于其他的参数,使用者可以采用任何除weight以外的keyword来命名。

3.在2中,创建的只是一副空图,为了得到一个有节点、有边的图,一般采用下面这个函数:

1
2
G.add_edge(1,2) #default edge data=1
G.add_edge(1,2) #specify edge data=0.9
add_edge()函数,该函数在调用时需要传入两个参数u和v,以及多个可选参数

u和v即图中的两个节点,如果图中不存在节点,在调用时会自动将这两个节点添加入内,同时构建两个节点之间的连接关系,可选参数通常指这条边的权重等关系参量。需要注意的是,如果图中已经存在了这条边,重新进行添加时会对这条边进行跟新操作(也就是覆盖了原有的信息)。

对于该函数,除了上述的构建方式以外,还有以下几种方式来创建边:

1
2
3
G.add_edge(*e) # single edge as tuple of two nodes
G.add_edge(1, 3, weight=7, capacity=15, length=342.7) #using many arguements to create edge
G.add_edges_from( [(1, 2)] ) # add edges from iterable container
  有时候,当采用默认方式创建边以后,我们可能还会往边里面添加边的相关参数,这时候,可以采用下面的方式来更新边的信息:

1
2
3
4
5
#For non-string attribute keys, use subscript notation.
G.add_edge(1, 2)
G[1][2].update({0: 5}) #更新边的信息
G.edges[1, 2].update({0: 5}) #更新边的信息
#上述两种更新方式,择一选取即可
  细心的朋友可能注意到我在写创建图的内容的时候,提到了add_edges_from()函数,该函数也是用来创建边的,该方式与add_edges()略有不同,比之add_edges()采用一个一个节点的方式进行创建,它来的更为便利。这个函数在调用时,需要一个节点元组作为参数以及多个可选参数作为边的信息。你可以这么传递:

默认创建节点之间的边:

1
G.add_edges_from([(u,v)])
也可以这么写,在创建的同时添加信息:

1
G.add_edges_from([(3, 4), (1, 4)], label='WN2898') 
  通过上述方式,就构建了一个3-4-1的图的连接,并给每条边打上了标签。

由此你就可以创建出自己的图模型了。追问您说的这些,实现了对边权的添加,请问,如果要创建的图中即有边权又有点权呢,这个节点的权重怎么添加?

热心网友 时间:2022-04-13 02:48

请问一下题主这个问题解决了吗 想知道答案
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
通达信主力指标公式汇总(2023版附源码) 有什么类似地下城与勇士的手机游戏 有没有类似于DNF的游戏 苹果手机类似地下城的游戏 有什么类似地下城与勇士的手机游戏 我的系统是WIN732,为什么玩不了光晕2,一点开就弹一个对话框出来说:无法... 玩诛仙电脑配置诛仙3要求电脑配置 ...永磁为什么要跌啊?东方财富金力永磁股吧?金力永磁股票最初..._百度... 怎么找回注销的微信号 如果把手机号码和微信号同时销户后期还能找回微信号吗? 仓储与库存有什么区别? 仓位和库位的区别 明星家轿重出江湖 第七代全新伊兰特静态体验 急求大学生竞选班长的演讲稿。 请问怎样知道同一个局域网其他电脑的共享文件夹密码? 新车前瞻,第七代伊兰特的危与机 17年后的回归—成都试驾第七代伊兰特 直面“天下公路第一弯” 第七代伊兰特带你最硬核的激情驾趣 修一次洗衣机多少钱 这款韩系车实力不可低估! 北京现代第七代伊兰特评测 地瓜奶茶怎么做 紫薯奶茶是怎么做的呢? 冻结怎么实名制认证冻结了怎么样才能实名认证 别人可以冻结我的码 微信实名认证没更改微信账户可以冻结吗 微信被盗,被改,绑定手机号被改,但实名认证我知道,该这么把微信冻结、呢_百度问一问 微信被盗,被改,绑定手机号被改,但实名认证我知道,该这么把微信冻结、呢_百度问一问 实名本人的身份证,忘记账号,怎么冻结 咱们结婚吧经典语录 咱们结婚吧大结局是什么,大结局,人物最终结局 吴若甫饰演过哪些历史人物﹖ 外星人笔记本风扇能换成静音的嘛 第七代伊兰特:让年轻人倍感体面的经典 查看局域网共享文件/共享电脑要密码/怎样破解? 迅雷怎么导入未下载完成的文件 迅雷导入未完成文件,总在99%卡住很久都导入不了 09年好看的美剧 2009年有什么美剧最好看? 2009——2010年好看的美剧推荐 经典的美剧都有哪些?麻烦了解的给介绍点 2009年好看的美剧 09年有什么好看的美剧没? 梦见太阳从天上下来照在病人头上又上天了 梦到太阳掉着自己天上飞什么意思 2009年有什么好看的美剧 推荐几部2009开始第一季的好看的美剧 请推荐09年最新最好看的电影,美剧,日剧,动漫,要全面,谢谢! 求好看的美剧 英剧!!! 09年(最近)好看美剧??? 华为p9pro换屏多少钱 换个华为p9Pro屏幕多少钱 牛仔舞的基本动作(详细步骤)!