【问题标题】:How do I increase the dimensions of a numpy int32 array?如何增加 numpy int32 数组的维度?
【发布时间】:2012-11-12 07:57:25
【问题描述】:

我有一个名为 a 的 numpy int32 数组,其形状为 (4, 8, 3)。我想将此数组重塑为大小为(4, 12, 3) 的数组。我该怎么做?

我尝试过使用reshape,但reshape 要求数组大小相同。

【问题讨论】:

  • 为了清楚起见,我愿意用 0(或任何默认数据)填充任何新空格。

标签: python arrays numpy reshape


【解决方案1】:

我可能错了,但是:一个 numpy 数组不应该以这种方式发生变异。 当您进行重塑时,您实际上在做的只是更改读取字节/元素的顺序/方式

您要做的是创建一个更大的新数组,其中包含前一个数组的数据以及其他内容。你必须告诉 Numpy 你想要新的东西在哪里以及你想要旧的东西在哪里。

即:

new_array = np.zeros((4, 12, 3))
new_array[:, :8, :] = old_array

此示例在第二维末尾的数组中添加 4 个附加“列”。

【讨论】:

  • numpy.append 是做同样事情的另一种方式。
  • 是的 resize 也做了类似的事情,但老实说,我不太了解这些功能的目的,我觉得它不是很明确,我不明白你如何选择在哪里输入填充值。
猜你喜欢
  • 2019-01-06
  • 2021-03-20
  • 2013-06-28
  • 1970-01-01
  • 1970-01-01
  • 2011-03-04
相关资源
最近更新 更多