2017-02-14 177 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