簡體   English   中英

將 2D 數組轉換為 3D 數組

[英]Converting 2D array to 3D array

我有一個格式為 (image, ID) 的二維數組,其中一些圖像具有相同的 ID。 例如:

data_2d = [(image1, 1) , (image2, 2),(image3, 2) , image(4, 2) , (image5,3), (image6,3)]

現在我的目標是使用它們的 id 號將其轉換為 3D 數組。 更清楚一點:

data_3d = [[(image1, 1) ] , [(image2, 2),(image3, 2) , image(4, 2)] , [(image5,3), (image6,3)]]  

有沒有辦法做到這一點?

使用字典(或defaultdict )按 id 對元組進行分組,然后將字典的值轉換為列表:

from collections import defaultdict

data_2d = [('image1', 1), ('image2', 2), ('image3', 2), ('image4', 2), ('image5', 3), ('image6', 3)]

groups = defaultdict(list)
for e in data_2d:
    groups[e[1]].append(e)

data_3d = list(groups.values())
print(data_3d)

輸出

[[('image1', 1)], [('image2', 2), ('image3', 2), ('image4', 2)], [('image5', 3), ('image6', 3)]]

請注意,我將您的變量名稱更改為字符串以使代碼可運行。

暫無
暫無

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

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