[英]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))
會將a
和b
變量轉換為字典。 不過,我不確定這是不是你要找的東西。
使用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.