You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

networkx的from_numpy_matrix()边生成规则及转置无效问题

问题根因

出现该现象完全是调用方法时未匹配默认参数语义导致的,不存在邻接矩阵被自动转置的逻辑:

  • networkx.from_numpy_matrix 方法默认创建无向图(Graph类型),无向图的边不存储方向属性,边的节点对是无序的,输出边列表时会默认将节点序号更小的放在前面,因此只要0和13之间存在邻接关系,打印结果永远显示为(0, 13),不可能出现(13, 0)的展示形式。
  • 无向图读取邻接矩阵时,只要adj_matrix[i][j]和adj_matrix[j][i]任意一个位置非零,就会判定两点间存在边,不会校验方向。你传入原邻接矩阵还是转置后的邻接矩阵,对无向图来说识别到的边集合完全一致,因此输出结果不会发生变化。
正确调用方式

如果需要保留边的方向,生成符合预期的有向图,必须显式指定创建的图类型为有向图(DiGraph类型):

G = networkx.from_numpy_matrix(adj_matrix, create_using=networkx.DiGraph)

该调用方式下邻接矩阵的语义为adj_matrix[u][v]非零即代表存在从u指向v的有向边,此时就能正确识别到顶点13指向顶点0的边。

内容的提问来源于stack exchange,提问作者Lauren

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 15:45:49