【发布时间】:2019-09-18 19:34:18
【问题描述】:
我想将图像的 4d 数组从 (50, 100, 100, 128) 更改为 (50,128, 100, 100),但是当我在重塑图像后绘制图像时,图像发生了变化。 所有图像都是来自 50 位患者的 CT 扫描图像,我想将它们用于 3d Resnet 卷积神经网络。此外,每位患者有128张100*100像素的图像。
原始形状:
data.shape
(50, 100, 100, 128)
数据中的图像
imgplot = plt.imshow(data[0,:,:,1])
plt.show()
改造后
rd = data.reshape(-1,128,100,100)
rd.shape
(50, 128, 100, 100)
imgplot = plt.imshow(rd [0,1,:,:])
plt.show()
另外,我尝试了转置,但没有任何改变
r2data = np.transpose(data)
r2data.shape
(128, 100, 100, 50)
【问题讨论】:
-
我认为您正在寻找docs.scipy.org/doc/numpy/reference/generated/… 整形改变形状但不改变元素的顺序。要交换轴,请使用转置。
-
亲爱的@tilman151 我试过转置但没有任何改变
-
您是如何使用该命令的?我建议 data = np.transpose(data, (0, 2, 3, 1))。这应该会将您的频道维度移到后面。
-
@tilman151 结果是 (50, 100, 128, 100)
标签: python numpy multidimensional-array keras reshape