在python中将多个numpy数组(图像)组合到一个数组(图像)中
我有一些numpy阵列,其元素是28*28图像的像素,如下所示: 其中25个阵列为(25,28,28)或(5,5,28,28)形状的一个阵列。有没有什么有效的方法可以将它们堆叠成一个图像:28*28个图像中的5*5个 我尝试了np.REFORMATE到(140140)数组和plt.imgshow。但是输出是一个乱七八糟的图像。我尝试将np.REFORMATE转换为(140140)…如果您首先适当地转换输入,这将起作用 假设输入在python中将多个numpy数组(图像)组合到一个数组(图像)中,python,image,numpy,matplotlib,Python,Image,Numpy,Matplotlib,我有一些numpy阵列,其元素是28*28图像的像素,如下所示: 其中25个阵列为(25,28,28)或(5,5,28,28)形状的一个阵列。有没有什么有效的方法可以将它们堆叠成一个图像:28*28个图像中的5*5个 我尝试了np.REFORMATE到(140140)数组和plt.imgshow。但是输出是一个乱七八糟的图像。我尝试将np.REFORMATE转换为(140140)…如果您首先适当地转换输入,这将起作用 假设输入x具有形状(5,5,28,28)。要获得具有形状(140,140)
x
具有形状(5,5,28,28)。要获得具有形状(140,140)的阵列y
,该阵列包含按所需方式排列的图像,可以执行以下操作:
xshp = x.shp
y = x.transpose((0, 2, 1, 3)).reshape((xshp[0]*xshp[2], xshp[1]*xshp[3]))
如果x
始终具有形状(5、5、28、28),则可以硬编码常数140:
y = x.transpose((0, 2, 1, 3)).reshape((140, 140))
例如,这里我创建了一个带有形状(5、5、28、28)的x
,其中每个28x28图像都是一个常量。常数是随机选择的。将绘制经过变换、重塑的数组y
,您可以看到所有常量块都正确排列
In [148]: rng = np.random.default_rng()
In [149]: x = np.repeat(rng.integers(0, 256, size=(5, 5)), 28*28, axis=-1).reshape((5, 5, 28, 28))
In [150]: y = x.transpose((0, 2, 1, 3)).reshape((140, 140))
In [151]: imshow(y)
“我尝试将np.reformate改为(140140)…”如果您首先适当地转换输入,这将起作用
假设输入x
具有形状(5,5,28,28)。要获得具有形状(140,140)的阵列y
,该阵列包含按所需方式排列的图像,可以执行以下操作:
xshp = x.shp
y = x.transpose((0, 2, 1, 3)).reshape((xshp[0]*xshp[2], xshp[1]*xshp[3]))
如果x
始终具有形状(5、5、28、28),则可以硬编码常数140:
y = x.transpose((0, 2, 1, 3)).reshape((140, 140))
例如,这里我创建了一个带有形状(5、5、28、28)的x
,其中每个28x28图像都是一个常量。常数是随机选择的。将绘制经过变换、重塑的数组y
,您可以看到所有常量块都正确排列
In [148]: rng = np.random.default_rng()
In [149]: x = np.repeat(rng.integers(0, 256, size=(5, 5)), 28*28, axis=-1).reshape((5, 5, 28, 28))
In [150]: y = x.transpose((0, 2, 1, 3)).reshape((140, 140))
In [151]: imshow(y)
嗯?如何在25x28x28的阵列中获得625张28x28的图像?嗯?如何在25x28x28的阵列中获得625张28x28的图像?