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

Python提取数组节点编号对应nodes字典节点索引的实现方法

问题背景

需要从字典nodes中提取与数组I2存储的节点编号对应的节点坐标,原有实现逻辑错误,输出全为False,预期输出是编号对转换后的坐标数组。

原代码问题分析
  • 原字典nodes的存储结构是坐标为键、节点编号为值,原逻辑没有构建编号到坐标的反向映射,直接拿坐标值去匹配编号数组,无法得到对应结果
  • 原判断逻辑[i,i] in I2的匹配目标是两个元素完全相同的坐标对,和I2中存储的「两个不同节点组成的编号对」的结构、含义完全不匹配
正确实现方案

先构建节点编号到坐标的反向映射字典,再遍历I2中的每一组节点编号,替换为对应的坐标,最后转为numpy数组即可,完整代码如下:

import numpy as np

nodes = {(0, 0): 1,
         (0, 1): 2,
         (1, 0): 3,
         (1, 1): 4}
I2 = np.array([[1,2],[1,3],[2,4],[3,4]])

# 构建 节点编号:对应坐标 的反向映射
id2coord = {node_val: pos for pos, node_val in nodes.items()}
# 逐对替换编号为坐标,生成目标数组
I3 = np.array([[id2coord[p1], id2coord[p2]] for p1, p2 in I2])

print("I3 =", I3)
运行输出

执行上述代码后,得到的结果和预期完全一致:

I3 = [[[0 0]
  [0 1]]

 [[0 0]
  [1 0]]

 [[0 1]
  [1 1]]

 [[1 0]
  [1 1]]]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 01:48:15