networkx-图的实战利器

这篇博客介绍了networkx库在图计算中的应用,强调了它在不追求最高效率时的便利性。内容涵盖了图的基本数据结构,如使用dict嵌套实现的高效存储,并详细列举了四种图类型:无向图、有向图、多路径无向图和多路径有向图。此外,还提及了创建图、添加边的操作以及求最短路径等基本功能。
摘要由CSDN通过智能技术生成

    最近在学习图相关的东西,networks真的是个神器,在不追求特别高效率的情况下,简直是不能再方便了,简单记录下心得。

一、基础知识

(一)数据结构

    数据结构在很大程度上决定了图计算的效率,用了有一段时间的python了,要说效率那一定是dict了,英雄所见略同,networks的数据结构也是一系列的dict的嵌套。

{'A': {'B': {5}}, 'C': {'B': {3}}, 'B': {'A': {2}, 'C': {1}}}

    第一个的含义:A-B权重为5。

    当然,第三层括号里还可以继续嵌套新的字典存别的值,这里不展开说了。

(二)图的类型

    目前networks支持四种类型的图

    (1)无向图——Graph

    (2)有向图——DiGraph

    (3)多路径无向图——MultiGraph

    (4)多路径有向图——MultiDiGraph

二、用法

    (一)创建图、添加边

import networkx as nx
G = nx.Graph()    #初始化一个无向图
G.add_edge(1, 2)  # 增加一条边,没有指认权重,则默认为1
G.add_edge(2, 3, weight=0.9)  # 增加边并指定权重为0.9
#一次增加多条边
e
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值