我有一個3D數組的列表,它們都是不同的形狀,但我需要它們都是相同的形狀。此外,該形狀需要是列表中最小的形狀。例如,如果三個數組的my_list具有形狀(115,115,3),(111,111,3)和(113,113,3),則它們都需要是(111,111,3)。它們都是方形彩色圖像,所以它們將具有形狀(x,x,3)。如何重塑Python中的列表中的多個數組
所以,我有兩個主要問題:
- 我如何找到最小的形狀沒有數組或循環保持一個變量在創建列表?
- 如何有效地將列表中的所有數組設置爲最小形狀?
目前我保持了最小的形狀的變量,同時創造my_list這樣我就可以做到這一點:
for idx, img in enumerate(my_list):
img = img[:smallest_shape,:smallest_shape]
my_list[idx] = img
我只是覺得這不是最有效的方式,而且我也意識到我通過切片失去價值,但我期待這一點。
1.如果沒有循環遍歷整個事物,你就找不到最小的值,除非你知道它們是排序的。然而,排序成本不僅僅是找到最小的一個。 2.通過切片設置已經非常有效,因爲內部numpy創建視圖對象而不是複製東西。 – Kh40tiK
正在爲您加載選項時調整圖像大小?這將確保所有圖像具有相同的形狀。 – OddNorg
你想讓它們成爲中心焦點嗎?或者你只是想將多餘的行整理到右側和底部,還是左側和頂部? – NaN