[英]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.