python networkX库的学习(一) 12.21更新

一、介绍:

networkx是python的一个第三方包,可以方便地调用各种图算法的计算。
通过调用python画图包matplotlib能实现图的可视化。

二、简单实现:

(1):画一个三角形

import networkx as nx
import matplotlib.pyplot as plt
g = nx.Graph()
g.add_edge('a','b') #连边a-b
g.add_edge('b','c') #连边b-c
g.add_edge('c','a') #连边c-a
nx.draw(g) #画出图g
plt.show() #显示

PS:有趣的是,当不规定权值or苛刻的条件,出来的图是满足条件的随机图。

(2):转有向图:讲ng.Graph ---> ng.DiGraph ,即可 

import networkx as nx
import matplotlib.pyplot as plt
G = nx.DiGraph()
G.add_edge(1,2)
G.add_edge(2,3)
G.add_edge(3,1)
nx.draw(G)
plt.show()

(3):关于带权边的操作:

G.add_weighted_edges_from(u,v,w) ---> 添加由u到v权值为w 

G.get_edge_data(u,v) ---> 获取u到v边的权值 , 数据类型为字典类型, 且用print输出

(4):简单的调用图算法:

三、调用图算法

NetworkX提供了常用的图论经典算法,例如DFS、BFS、最短路、最小生成树、最大流等等,非常丰富

可以浏览NX的在线手册http://networkx.lanl.gov/reference/algorithms.html,对每个算法都提供了详细的帮助文档和示例。

path=nx.all_pairs_shortest_path(G)     #调用多源最短路径算法,计算图G所有节点间的最短路径
print path[0][2]                                     #输出节点0、2之间的最短路径序列: [0, 1, 2]


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kelisita

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值