2017-02-14 222 views
3

我有一個大小爲5000x32x32x3的numpy數組。數字5000是圖像的數量,每幅圖像的寬度和高度均爲32x32,並具有3色彩通道。在numpy中重塑陣列

現在我想創建一個形狀5000x3x32x32的數組被保存的方式。 我的意思是通過保存數據的是:

  1. 應該有所得陣列
  2. 在5000個數據點的陣列的第二維度(3)正確地確定所述色彩通道即其第二尺寸的所有元素0屬於紅色通道,其二維爲1屬於綠色通道,其二維屬於2屬於藍色通道。

簡單地重塑形狀np.reshape(data,(5000,3,32,32))將無法​​正常工作,因爲它不會保留通道,只是將數據重塑爲所需的形狀。

+1

有你看着:'numpy.swapaxes' https://docs.scipy.org/doc /numpy/reference/generated/numpy.swapaxes.html。它應該可以通過兩個軸換位來完成。 –

+3

其實'np.transpose(data,(0,3,1,2))'應該做你想做的。 –

+0

@Learningisamess你應該寫一個答案.. – Aaron

回答

3

我認爲你正在尋找的軸的排列,numpy.transpose可以得到這個工作做好:

data = np.transpose(data, (0, 3, 1, 2)) 
+0

非常感謝。它幫助! – Sarthak