簡體   English   中英

如何將Numpy數組添加到字典中

[英]How to add a Numpy Array to a dictionary

如何在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))會將ab變量轉換為字典。 不過,我不確定這是不是你要找的東西。

使用dictionary comprehension

我假設您打算將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作為list的的element ,如[[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),然后使用嵌套列表中的值作為鍵。 對於每個鍵,在列表b中以相同的索引(i)分配數組。 請注意,這要求a的索引對應於b中的相同位置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM