【问题标题】:rearranging 2*2 pixel images, each given by 1 by 4 numpy vectors, into a single 8 by 8 matrix without using a for loop将 2*2 像素图像(每个图像由 1 x 4 numpy 向量给出)重新排列为单个 8 x 8 矩阵,而不使用 for 循环
【发布时间】:2021-02-26 00:41:41
【问题描述】:

在一个 uni 类的作业中,我得到了多个向量中的图像,我需要通过将它们重新排列成一个矩阵来显示其中的多个。

假设给定向量:

[[1, 2, 3, 4],[5, 6, 7, 8],[9, 10, 11, 12],[13,14,15,16]]

向量中的每对 4 个值描述一个 2x2 像素的图像 我的任务是将其重新排列为 4x4 矩阵:

[[1,2,5,6],[3,4,7,8],[8,9,12,13],[10,11,15,16]]

不使用单个 for 循环。我已经尝试了多种重塑变体,但不知道如何实际解决这个问题。

【问题讨论】:

    标签: python numpy matrix reshape imshow


    【解决方案1】:

    让我们使用reshapeswapaxes

    arrs = [[1, 2, 3, 4],[5, 6, 7, 8],[9, 10, 11, 12],[13,14,15,16]]
    
    np.array(arrs).reshape(2,2,2,2).swapaxes(1,2).reshape(4,4)
    

    输出:

    array([[ 1,  2,  5,  6],
           [ 3,  4,  7,  8],
           [ 9, 10, 13, 14],
           [11, 12, 15, 16]])
    

    【讨论】:

      猜你喜欢
      • 2015-03-01
      • 1970-01-01
      • 2018-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-07
      • 2023-03-06
      • 2015-05-03
      相关资源
      最近更新 更多