将 2*2 像素图像(每个图像由 1 x 4 numpy 向量给出)重新排列为单个 8 x 8 矩阵,而不使用 for 循环
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
在 uni 的作业中 class 我得到了多个矢量图像,我需要通过将它们重新排列成一个矩阵来显示其中的多个图像。
假设给定向量:
[[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 循环。我尝试了多种变形变体,但不知道如何真正解决这个问题。
让我们使用 reshape
和 swapaxes
:
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]])
在 uni 的作业中 class 我得到了多个矢量图像,我需要通过将它们重新排列成一个矩阵来显示其中的多个图像。
假设给定向量:
[[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 循环。我尝试了多种变形变体,但不知道如何真正解决这个问题。
让我们使用 reshape
和 swapaxes
:
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]])