0x01 networkx基础
networkx是python中处理图数据结构常用的一个模块, 使用简单, 常用的对图计算的需求都已经使用高效的算法实现.
本文主要内容为networkx模块的基本使用方法, 包括一些常用的算法需求.
无向图
1. 创建无向图
创建一个无点无边的空图:
import networkx as nx
g = nx.Graph()点(nodes/vertices)可以是任何哈希的对象, int, string, tuple等等.
2. 点的添加
图的元素扩张可以通过两种形式: 添加点或添加边.
首先, 可以通过以下的方式向图中添加结点:
g.add_node(1)也可以传入list, 添加一系列的点:
g.add_nodes_from([
"a", "b", "c",
])3. 边的添加
图也可以通过增加边来扩展.
添加一条边:
添加多条边:
4. 点和边的删除
同样的, 可以便捷的使用方法, 删除图中已经存在的点和边:
5. 查看图的属性
使用一些方法快速查询图的一些属性:
networkx还提供了iterator的方法来快速定位点和边, 但需要注意的是不能修改返回的字典格式的数据, 因为这是模块组织数据的形式.
6. 设置点, 边, 图的属性
有向图
1. 创建有向图
2. 添加带权重的边
这里的每个元素位置要固定, 最后一个元素表示边的权值
3. 点属性
4. 转为无向图
最后更新于
这有帮助吗?