如何增加一个numpy int32数组的维度?

4
我有一个名为a的numpy int32数组,它的形状为(4, 8, 3)。我想将此数组重塑为一个大小为(4, 12, 3)的数组。我应该如何做呢?
我尝试使用reshape,但reshape要求数组的大小相同。

要明确的是,我愿意用0(或任何默认数据)填补任何新空间。 - dangerChihuahua007
1个回答

2
我可能错了,但是:numpy数组不应该以这种方式被改变。当你进行reshape操作时,实际上只是改变了读取字节/元素的顺序/方式。
你想做的是创建一个更大的新数组,其中包含以前数组的数据和其他内容。你必须告诉Numpy你希望新的东西放在哪里,旧的东西放在哪里。
例如:
new_array = np.zeros((4, 12, 3))
new_array[:, :8, :] = old_array

这个例子在你的数组第二维末尾添加了4个额外的“列”。

1
numpy.append 是另一种完成相同任务的方法。 - Isaac
是的,resize 函数也有类似的功能,但说实话我并不真正理解这些函数的目的,我觉得它们不够明确,而且我不明白如何选择填充值的位置。 - Félix Cantournet

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接