如何将python字典中的数组转换为元组?



我有这本字典:

{
0: array([-0.16638531, -0.11749843]),
1: array([-0.2318372 ,  0.00917023]),
2: array([-0.42934129, -0.0675385 ]),
3: array([-0.63377579, -0.02102854]),
4: array([-0.26648222, -0.42038916]),
5: array([-0.17250316, -0.73490218]),
6: array([-0.42774336, -0.61259704]),
7: array([-0.55420825, -0.77304496]),
8: array([0.13900166, 0.07800885]),
9: array([0.42223986, 0.16563338]),
10: array([ 0.39895669, -0.09198566]),
12: array([0.24324618, 0.44829616]),
11: array([ 0.55394714, -0.17960723]),
13: array([0.192127 , 0.5988793]),
14: array([0.39554203, 0.7186038 ]),
15: array([0.53721604, 1.        ])
}

我想把它们转换成numpy。将数组值转换为元组,并具有如下内容:

{
0: (-0.16638531, -0.11749843),
1: (-0.2318372 ,  0.00917023),
...
}

从这里的答案来看,对于字典中的每个值,您可以:

tuple(arr)

对于整个字典你可以这样做:

new_dict = {key: tuple(arr) for key, arr in old_dict.items()}

或者更容易理解:

new_dict = {}
for key, arr in old_dict.items():
new_dict.update({key: tuple(arr)})

可以使用字典推导式

Python字典有一个.items()方法,它为每个键-值对返回一个(key, value)元组。

推导式用原键重新创建一个新的映射,并将array转换为tuple

from numpy import array
data = {
0: array([-0.16638531, -0.11749843]),
1: array([-0.2318372 ,  0.00917023]),
2: array([-0.42934129, -0.0675385 ]),
3: array([-0.63377579, -0.02102854]),
4: array([-0.26648222, -0.42038916]),
5: array([-0.17250316, -0.73490218]),
6: array([-0.42774336, -0.61259704]),
7: array([-0.55420825, -0.77304496]),
8: array([0.13900166, 0.07800885]),
9: array([0.42223986, 0.16563338]),
10: array([ 0.39895669, -0.09198566]),
12: array([0.24324618, 0.44829616]),
11: array([ 0.55394714, -0.17960723]),
13: array([0.192127 , 0.5988793]),
14: array([0.39554203, 0.7186038 ]),
15: array([0.53721604, 1.        ])
}
print({key: tuple(value) for key, value in data.items()})

输出:{0: (-0.16638531, -0.11749843), 1: (-0.2318372, 0.00917023), 2: (-0.42934129, -0.0675385), 3: (-0.63377579, -0.02102854), 4: (-0.26648222, -0.42038916), 5: (-0.17250316, -0.73490218), 6: (-0.42774336, -0.61259704), 7: (-0.55420825, -0.77304496), 8: (0.13900166, 0.07800885), 9: (0.42223986, 0.16563338), 10: (0.39895669, -0.09198566), 12: (0.24324618, 0.44829616), 11: (0.55394714, -0.17960723), 13: (0.192127, 0.5988793), 14: (0.39554203, 0.7186038), 15: (0.53721604, 1.0)}

mapping = { key: (item[0], item[1]) for key, item in your_dict.items() }

相关内容

  • 没有找到相关文章

最新更新