0x01 networkx基础

networkxpython中处理图数据结构常用的一个模块, 使用简单, 常用的对图计算的需求都已经使用高效的算法实现.

本文主要内容为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. 转为无向图

最后更新于

这有帮助吗?