今天在做GAN实验的时候,需要将原本的三维图像中第三维去掉。方便后续可视化相关的处理。
举例来说,原本是
image.shape=(255,255,1)
,灰度图第三维占位。转换成imageNew = (255, 255)
.
网上找了一些方法,贴出两种我试过能用的方法:
首先,仿造生成shape=(3,3,1)
的样本。
a = [[[1,2,3],[4,5,6],[7,8,9]]]
a_array = np.array(a) # 转成ndarray格式,shape=(1,3,3)
a_array = a_array[0] # 去掉第一维,shape=(3,3)
a_array = a_array[:,:,np.newaxis] # 使用np.newaxis生成shape=(3,3,1)
方法一:
a1 = np.resize(a_array, (3,3))
print("a1.shape:", a1.shape)
得到a1.shape=(3, 3)
方法二:
a2 = a_array[:,:,0]
print("a2.shape:", a2.shape)
同样可以得到a2.shape=(3, 3)
当然还有其他各种方法,就不一一试了,方法嘛,能满足需求,好用就行了。