seb*_*aqu 5 python arrays numpy
我在将 4D numpy 数组重塑为 2D numpy 数组时遇到一些麻烦。目前numpy数组如下(35280L,1L,32L,32L)。格式为图像数量、通道、宽度、高度。基本上,我有 35280 个 32x32 的图像块,我想组合这些图像块(保留索引)来创建一张大图像。
你有一个像这样的数组:
images = np.random.randint(0,256,(35280, 1, 32, 32))
Run Code Online (Sandbox Code Playgroud)
您需要的第一件事是(以某种方式)弄清楚最终图像的宽度应该是多少。假设这个例子是(441 * 32, 80 * 32).
然后你可以这样做:
image = images.swapaxes(0,2).reshape((441 * 32, -1))
Run Code Online (Sandbox Code Playgroud)
这几乎满足了您的需要,除了行是交错的,因此您有:
AAABBBCCC
DDDEEEFFF
GGGHHHIII
AAABBBCCC
DDDEEEFFF
GGGHHHIII
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用“花式索引”来重新排列行:
image[np.array([0,3,1,4,2,5])]
Run Code Online (Sandbox Code Playgroud)
现在你有:
AAABBBCCC
AAABBBCCC
DDDEEEFFF
DDDEEEFFF
GGGHHHIII
GGGHHHIII
Run Code Online (Sandbox Code Playgroud)
我将把生成精美索引序列的部分作为练习。