我有一個 numpy 數組,其中包含 CIFAR10 數據集中的所有圖像: (50000, 3072)我從中取出一個數組,(3072,) 然后嘗試將其形狀轉換為 RGB 圖像 .reshape(32, 32, 3)但是當我將它傳遞給 plt.show() 時,它顯示類似的內容我不確定為什么它沒有正確顯示圖像,我也嘗試過, .reshape(3, 32, 32)但它TypeError: Invalid shape (3, 32, 32) for image data在繪圖時給出我如何正確地重塑它?
1 回答

慕桂英3389331
TA貢獻2036條經驗 獲得超8個贊
您應該嘗試np.swapaxes()
獲得有效的形狀來plt.imshow()
接受。
import?numpy?as?np dd?=?np.array([1]*3072).reshape(3,?32,?32) dd1?=?np.swapaxes(dd,?0,?2)
嘗試?plt.imshow(dd1)
看看會發生什么。(使用您自己的數據):p
首先,您應該使用 (3, 32, 32) 重塑,這是由數據的順序決定的。
然后你必須顯示重塑圖像,但plt.imshow()
只接受形狀為 (M, N) 或 (M, N, 3) 或 (M, N, 4) 的數組,所以你現在必須交換軸,因為重塑數據是(3、32、32)。
添加回答
舉報
0/150
提交
取消