【发布时间】:2017-11-30 00:06:21
【问题描述】:
我有一个 NumPy2d 数组,它是一个对称矩阵(对角线上方的数字与对角线下方的数字相同的方阵)
输入矩阵示例:
edgeMatrix = np.array([[0., 2., 9.],
[2., 0., 1.],
[9., 1., 0.]])
我正在寻找一种非常有效的方法来将这个大矩阵转换为嵌套字典,其中第一个键是矩阵的行索引,第二个字典键是矩阵的列索引。例如:
所需的嵌套字典格式:
edgeDict[0][0] = 0
edgeDict[0][1] = 2
edgeDict[0][2] = 9
edgeDict[1][0] = 2
edgeDict[1][1] = 0
edgeDict[1][2] = 1
edgeDict[2][0] = 9
edgeDict[2][1] = 1
edgeDict[2][2] = 0
我曾尝试使用dict(enumerate(edgeMatrix.flatten(), 1)),但未能弄清楚如何让其嵌套方面发挥作用。
【问题讨论】:
-
出于好奇,您为什么要
dict中的dict?列表列表具有相同的使用语法(用于读取数据/设置现有元素),但分配速度更快,内存占用更小,查找性能更快。 -
我需要一个字典而不是一个列表的原因是这会输入一个需要字典而不是列表的包参数
标签: python python-3.x numpy