Python 如何将Numpy数组添加到字典

Python 如何将Numpy数组添加到字典,python,arrays,numpy,dictionary,Python,Arrays,Numpy,Dictionary,如何在python中将两个numpy数组添加到字典中 a = [[1] [3]] b = [array([[[ 41., 179.], [ 451., 254.], [ 449., 10.], [ 53., 256.]]], dtype=float32), array([[[ 181., 313.], [ 27., 24.], [ 113.,

如何在python中将两个numpy数组添加到字典中

a = [[1]
     [3]]

b = [array([[[ 41.,  179.],
             [ 451.,  254.],
             [ 449.,  10.],
             [ 53.,  256.]]], dtype=float32), array([[[ 181.,  313.],
             [  27.,  24.],
             [ 113.,  192.],
             [ 08.,  20.]]], dtype=float32)]
我希望将a和b显示为

c = {1: array([[ 41.,  179.],
            [ 451.,  254.],
            [ 449.,  10.],
            [ 53.,  256.]], dtype=float32),
     3: array([[ 181.,  313.],
           [  27.,  24.],
           [ 113.,  192.],
           [ 08.,  20.]], dtype=float32)}

c=dict(zip(a[:,0],b))
会将
a
b
变量转换为字典。不过,我不确定这是否就是你想要的。

使用
词典理解:

我想你是想把
a
定义为:

a = [1, 3]
然后,您可以通过以下方式获得
c

c = {e: b[i] for i, e in enumerate(a)}
给出了以下各项的预期输出:

{1: array([[[  41.,  179.],
    [ 451.,  254.],
    [ 449.,   10.],
    [  53.,  256.]]], dtype=float32),
 3: array([[[ 181.,  313.],
    [  27.,   24.],
    [ 113.,  192.],
    [   8.,   20.]]], dtype=float32)}

如果实际上只有
a
作为
元素的
列表
,如
[[1],[3]]
,则可以执行以下操作:

a = [i[0] for i in a]
#[[1], [3]] --> [1, 3]

c语言中的一个小错误,在两个内部列表之间需要一个逗号(这里需要嵌套列表吗?)

无论如何,这里有一个解决方案,可以提供您想要的输出

import numpy as np
c = {}

a = [[1],[3]]

b = [np.array([[[ 41.,  179.],
             [ 451.,  254.],
             [ 449.,  10.],
             [ 53.,  256.]]], dtype=np.float32), np.array([[[ 181.,  313.],
             [  27.,  24.],
             [ 113.,  192.],
             [ 08.,  20.]]], dtype=np.float32)]

for i in range(len(a)):
    c[a[i][0]] = b[i]

首先创建一个字典(c),然后使用嵌套列表a中的值作为键。对于这些键中的每个键,将列表b中的数组分配到相同的索引(i)。请注意,这要求a的索引对应于b中的相同位置。

它返回一个错误,即-TypeError:unhabable type:'numpy.ndarray'哦,对了,我没有注意到
a的确切形式。我猜你的意思是a=np.array([[1],[3]])
。如果是这样的话,
dict(zip(a[:,0],b))
应该可以。解决方案必须是可伸缩的吗?是的,它必须是。仍然会给出一个错误
TypeError:unhable type:'numpy.ndarray'
对不起,工作非常完美!!我在键入代码时出错。