如何将3D阵列的python列表转换为特定形状的单个3D阵列



我有一个列表itemlist,它有25个形状为(128x128x3)3D Arrays

我希望它将所有这些值转换/合并到一个公共数组中,基本上用它创建一个图像。我希望新的形状是(640, 640, 3),意思是(128, 128)5 rows and 5 columns

我尝试了以下方法,但结果很奇怪,主要是重复一些数组:

out = np.concatenate(itemlist).ravel()
out.shape ##(1228800,)
img = np.reshape(out, (640,640,3))
img.shape ## (640, 640, 3) 

我得到的最终形状是正确的,但从视觉上看,它看起来像是一组重复的图像,逻辑有问题吗?

具有25个(128,128,3)阵列

out = np.concatenate(itemlist)

应产生(25*128128,3(阵列

out = out.ravel()

应产生25128128*3

out.shape ##(1228800,)

(640,640,3)在元素总数上匹配,但不会产生有意义的图像。

向后工作:

(5*128, 5*128,3)  => (5,128,5,128,3) => (5,5,128,128,3) => (25,128,128,3)

这需要几次重塑和一次变性。

最新更新