我有一个形状为 (16, 32, 16, 16) 的平铺 numpy 数组,即每个平铺都是 16x16 像素,网格为 32 个平铺宽,16 个高。从这里我想将其重塑为 256 高 x 512 宽的 2D 图像,但我无法找到正确的分割、切片和重塑咒语来达到我想要的效果。
1 回答
皈依舞
TA贡献1851条经验 获得超3个赞
您可以结合 numpy 的 reshape 和 transpose 来完成这项工作。我不完全确定三个“16”中的哪一个属于 32x16 重复网格,但假设它是第一个:
import numpy as np
data = np.random.random((16, 32, 16, 16))
# put number of repetitions next to respective dimension
transposed_data = np.transpose(data, (0, 2, 1, 3))
# concatenate repeated dimensions via reshape
reshaped_data = transposed_data.reshape((16 * 16, 32 * 16))
print(reshaped_data.shape)
添加回答
举报
0/150
提交
取消