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

Python NetworkX邻接矩阵建图后如何为节点分配名称

NetworkX为numpy邻接矩阵生成的图分配节点名称实现方案

你用nx.from_numpy_matrix生成的图G,默认节点是从0开始计数的连续整数ID,和numpy邻接矩阵的行/列索引完全一一对应,只要你准备的节点名称列表顺序和矩阵索引匹配,用下面两种方法都可以完成名称分配:

  • 方法1:直接将节点ID替换为对应名称(最常用,后续遍历、计算、导出时可以直接用名称作为节点标识)
# 替换成你自己准备好的节点名称列表,注意顺序必须和矩阵索引对应
node_name_list = ["节点A", "节点B", "处理站", "填埋场"]

# 生成 整数ID:节点名称 的映射字典
id_mapping = dict(zip(G.nodes(), node_name_list))
# 完成节点重命名
G = nx.relabel_nodes(G, id_mapping)
  • 方法2:保留原始整数节点ID,仅给节点添加名称属性(适合需要保留原始索引做矩阵关联计算的场景)
# 替换成你自己准备好的节点名称列表
node_name_list = ["节点A", "节点B", "处理站", "填埋场"]

for node_id, node_name in zip(G.nodes(), node_name_list):
    G.nodes[node_id]['name'] = node_name

注意:操作前请确认节点名称列表的长度和邻接矩阵的阶数(即A.shape[0])完全一致,且列表顺序严格匹配矩阵行/列的索引顺序,否则会出现节点名称错位的问题。

赋值完成后可以运行下面的代码校验结果是否正确:

# 方法1赋值后直接打印所有节点即可
print(list(G.nodes()))

# 方法2赋值后打印带属性的节点列表
print(list(G.nodes(data=True)))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 04:36:14