【问题标题】:Numpy change shape from (3, 512, 660, 4) to (3,2048,660,1)Numpy 将形状从 (3, 512, 660, 4) 更改为 (3,2048,660,1)
【发布时间】:2018-03-05 10:06:57
【问题描述】:

我正在研究 tensorflow,我在一个 numpy 数组中有一些汽车图像,形状为 (3, 512, 660, 4)

在此,3 对应于汽车索引,512*660 是图像大小,4 对应于汽车的不同侧面。

(1, 512, 660, 1) 对应 Car1 - 正面图像,(1, 512, 660, 2) 对应 Car1 - 左侧图像,依此类推。

现在,我想将汽车的所有图像合并为一张图像 (2048*660)。也就是说,我想将(3, 512, 660, 4) 重塑为(3, 2048, 660, 1)

有人可以帮助我吗?

我尝试了 reshape 函数,但它实际上是重叠图像而不是连接它。

【问题讨论】:

    标签: python numpy multidimensional-array tensor


    【解决方案1】:

    我们可以置换轴以将最后一个轴推到前面作为新的第三个轴并重塑。可以使用 np.swapaxesnp.transposenp.rollaxis 处理置换轴,为我们提供三种解决方案,就像这样 -

    a.swapaxes(2,3).reshape(3,2048,660,1)
    a.transpose(0,1,3,2).reshape(3,2048,660,1)
    np.rollaxis(a,3,2).reshape(3,2048,660,1)
    

    如果您想在前面有边索引,请相应地转置它-

    a.transpose(0,3,1,2).reshape(3,2048,660,1)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-04
      • 1970-01-01
      • 1970-01-01
      • 2019-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多