Scipy中connected_components处理给定稀疏矩阵的输出结果原因解析
代码输出结果解释
运行的完整代码如下:
import numpy as np from scipy.sparse import csr_matrix from scipy.sparse.csgraph import connected_components arr = np.array([ [0, 1, 2], [1, 0, 0], [2, 0, 0] ]) newarr = csr_matrix(arr) print(connected_components(newarr))
函数返回值规则
connected_components函数用于计算稀疏图的连通分量,返回值为二元组,含义分别为:
- 第一个元素:图中连通分量的总数量
- 第二个元素:长度等于节点总数的数组,每个位置的取值对应对应编号节点所属的连通分量标签,标签从0开始依次分配
该函数默认将输入视为无向图,只要两个节点之间存在非零边,就会判定为双向连通。
邻接矩阵的图结构
输入的邻接矩阵arr对应3个节点(编号为0、1、2)的无向图,矩阵中的非零值代表两个节点之间存在连通边:
- 矩阵第0行第1列、第1行第0列取值为1 → 节点0和节点1直接连通
- 矩阵第0行第2列、第2行第0列取值为2 → 节点0和节点2直接连通
三个节点通过节点0互相连通,整个图仅存在1个连通分量。
输出结果含义
输出(1, array([0, 0, 0], dtype=int32))的对应解释为:
- 第一个返回值
1:该图总共有1个连通分量 - 第二个返回的数组:编号为0、1、2的三个节点,均属于标签为0的同一个连通分量
内容的提问来源于stack exchange,提问作者Anamika
相关产品推荐
相关产品推荐

