【发布时间】:2012-11-12 07:57:25
【问题描述】:
我有一个名为 a 的 numpy int32 数组,其形状为 (4, 8, 3)。我想将此数组重塑为大小为(4, 12, 3) 的数组。我该怎么做?
我尝试过使用reshape,但reshape 要求数组大小相同。
【问题讨论】:
-
为了清楚起见,我愿意用 0(或任何默认数据)填充任何新空格。
标签: python arrays numpy reshape
我有一个名为 a 的 numpy int32 数组,其形状为 (4, 8, 3)。我想将此数组重塑为大小为(4, 12, 3) 的数组。我该怎么做?
我尝试过使用reshape,但reshape 要求数组大小相同。
【问题讨论】:
标签: python arrays numpy reshape
我可能错了,但是:一个 numpy 数组不应该以这种方式发生变异。 当您进行重塑时,您实际上在做的只是更改读取字节/元素的顺序/方式
您要做的是创建一个更大的新数组,其中包含前一个数组的数据以及其他内容。你必须告诉 Numpy 你想要新的东西在哪里以及你想要旧的东西在哪里。
即:
new_array = np.zeros((4, 12, 3))
new_array[:, :8, :] = old_array
此示例在第二维末尾的数组中添加 4 个附加“列”。
【讨论】:
numpy.append 是做同样事情的另一种方式。