我有一个 numpy 数组,其中包含 CIFAR10 数据集中的所有图像: (50000, 3072)我从中取出一个数组,(3072,) 然后尝试将其形状转换为 RGB 图像 .reshape(32, 32, 3)但是当我将它传递给 plt.show() 时,它显示类似的内容我不确定为什么它没有正确显示图像,我也尝试过, .reshape(3, 32, 32)但它TypeError: Invalid shape (3, 32, 32) for image data在绘图时给出我如何正确地重塑它?
1 回答
慕桂英3389331
TA贡献2036条经验 获得超8个赞
您应该尝试np.swapaxes()
获得有效的形状来plt.imshow()
接受。
import numpy as np dd = np.array([1]*3072).reshape(3, 32, 32) dd1 = np.swapaxes(dd, 0, 2)
尝试 plt.imshow(dd1)
看看会发生什么。(使用您自己的数据):p
首先,您应该使用 (3, 32, 32) 重塑,这是由数据的顺序决定的。
然后你必须显示重塑图像,但plt.imshow()
只接受形状为 (M, N) 或 (M, N, 3) 或 (M, N, 4) 的数组,所以你现在必须交换轴,因为重塑数据是(3、32、32)。
添加回答
举报
0/150
提交
取消