如何在Python/numpy中将3D数组结果保存到4D数组?
我正在阅读有关32 X 32 RGB图像的信息。因此,它是一个三维阵列,形状(32,32,3)三维包含颜色R、G和B 现在,我想读50幅这样的图片,然后把这些图片做成一个数组。所以我决定制作一个四维数组,它的维数为(50,32,32,3),其中第一维的50是图像的数量,第二维,第三维和第四维是图像的维数,即(32,32,3)如何在Python/numpy中将3D数组结果保存到4D数组?,numpy,multidimensional-array,Numpy,Multidimensional Array,我正在阅读有关32 X 32 RGB图像的信息。因此,它是一个三维阵列,形状(32,32,3)三维包含颜色R、G和B 现在,我想读50幅这样的图片,然后把这些图片做成一个数组。所以我决定制作一个四维数组,它的维数为(50,32,32,3),其中第一维的50是图像的数量,第二维,第三维和第四维是图像的维数,即(32,32,3) 我尝试使用concatenate执行此操作,但出现了错误。有没有办法做到这一点 您需要在连接之前添加一个轴,例如 import numpy as np arrs = [np
我尝试使用concatenate执行此操作,但出现了错误。有没有办法做到这一点 您需要在连接之前添加一个轴,例如
import numpy as np
arrs = [np.random.random((32, 32, 3))
for i in range(50)]
res = np.concatenate([arr[np.newaxis] for arr in arrs])
res.shape
# (50, 32, 32, 3)
编辑:或者,在这种情况下,您只需在数组列表中调用np.array
:
res = np.array(arrs)
res.shape
# (50, 32, 32, 3)
更简单的方法是在图像中添加另一个轴并附加它们
old_image = np.ones((100,100,3))
new_image = np.ones((100,100,3,1))
# lets jsut say you have two Images
old_image = np.reshape(old_image , (100,100,3,1))
new_image = np.reshape(new_image , (100,100,3,1))
directory = np.append( new_image , old_image , axis = 3)
干得好。如何实现
(32,32,3,50)
@user3051460:尝试np.stack(arrs,axis=3)