如何水平连接图像与numpy?

时间:2017-03-23 14:10:17

标签: python numpy

我正在尝试使用MNIST图像生成合成序列。每个图像都被展平784.当我选择其中五个时,我的数据就是形状(5,784)。  我想水平连接其中的5个,我的最终图像有形状(28,5 * 28)。我怎样才能做到这一点?

我用np.reshape尝试过但是我能做到的最好的是垂直连接。

1 个答案:

答案 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)。