我正在尝试使用MNIST图像生成合成序列。每个图像都被展平784.当我选择其中五个时,我的数据就是形状(5,784)。 我想水平连接其中的5个,我的最终图像有形状(28,5 * 28)。我怎样才能做到这一点?
我用np.reshape尝试过但是我能做到的最好的是垂直连接。
答案 0 :(得分:3)
为了演示,假设我们想要水平连接三个4x4的图像,平面存储为16个元素:
a = np.arange(16)
b = np.arange(16,32)
c = np.arange(32,48)
images = np.array([a,b,c]) # 3x16
这只是准备样本数据。现在重塑并连接:
np.hstack(images.reshape(3,4,4))
结果是:
array([[ 0, 1, 2, 3, 16, 17, 18, 19, 32, 33, 34, 35],
[ 4, 5, 6, 7, 20, 21, 22, 23, 36, 37, 38, 39],
[ 8, 9, 10, 11, 24, 25, 26, 27, 40, 41, 42, 43],
[12, 13, 14, 15, 28, 29, 30, 31, 44, 45, 46, 47]])
在您的原始案例中,表达式为:
np.hstack(stuff.reshape(5,28,28))
确实形状是(28,140)。