[英]How to convert 4d numpy array of images to 3d?
我有 4d numpy 形状数组(80,8,8,3)。 它是 80 张 8x8 图像,3 个通道。 我想用它们制作一张 8 行 10 列的大图像。 如何将 4d 数组转换为 3d 并重塑为所需的形状? 我尝试np.concatenate(images[i:i + 10,:,:,:]
但由于某种原因它不起作用。
如果您只想查看它们,您可以制作 plot 而无需摆弄您的数据:
data = np.random.random((80, 8, 8, 3))
import matplotlib.pyplot as plt
fig, axs = plt.subplots(nrows=8, ncols=10, figsize=(10, 8))
for ax, img in zip(axs.ravel(), data):
ax.imshow(img)
ax.axis('off')
这导致:
如果你真的想重塑它,你可以这样做:
n, h, w, c = data.shape
data_new = (data.reshape(8, 10, h, w, c)
.swapaxes(1,2)
.reshape(h*8, w*10, c))
到 plot 这个结果:
plt.figure(figsize=(10, 8))
plt.imshow(data_new)
plt.axis('off')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.