将nd数组转换为键值对字典

9
有没有一种在Python中将nd-array转换为字典的函数,其中键是索引元组,值是该索引处矩阵的值?
例如:
A = np.random.random([3,4,5])

结果:

{(i,j,k): A[i,j,k]}
2个回答

21

当然:您可以使用np.ndenumerate来完成这个问题:

{ index: v for index, v in np.ndenumerate(A) }

DSM简单地指出:

dict(np.ndenumerate(A))

3
只需使用dict(np.ndenumerate(A))即可;因为我们没有进行任何更改,所以字典推导并没有真正帮助我们。 - DSM
有没有办法将它转换回一个nd数组? - deepAgrawal
我建议您提出一个单独的问题。 - brianpck

1
问题在于brianpck的答案中键看起来像这样:
  (0,): 1531.827559532321,
  (1,): 1580.8390773018477,
  (2,): 1651.6454305202753,
  (3,): 1570.272671819512,

如果你想要类似于这样的键:

  0: 1531.827559532321,
  1: 1580.8390773018477,
  2: 1651.6454305202753,
  3: 1570.272671819512,

只需使用这个:

{ index[0]: v for index, v in np.ndenumerate(A) }

提示:如果您的np数组的维度大于1,请小心操作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接