gpt4 book ai didi

python - 将numpy矩阵转换为嵌套字典的有效方法

转载 作者:太空宇宙 更新时间:2023-11-04 02:37:26 31 4
gpt4 key购买 nike

我有一个 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)),但未能弄清楚如何获得此工作的嵌套方面。

最佳答案

您可以使用嵌套生成器表达式创建嵌套字典。

import numpy as np

edgeMatrix = np.array(
[[0., 2., 9.],
[2., 0., 1.],
[9., 1., 0.]]
)

edgeDict = dict(enumerate(dict(enumerate(row)) for row in edgeMatrix))
print(edgeDict)

输出

{0: {0: 0.0, 1: 2.0, 2: 9.0}, 1: {0: 2.0, 1: 0.0, 2: 1.0}, 2: {0: 9.0, 1: 1.0, 2: 0.0}}

关于python - 将numpy矩阵转换为嵌套字典的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47555539/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com