【发布时间】:2018-06-03 00:58:46
【问题描述】:
我对 numpy 还很陌生,我很可能会问一个愚蠢的问题,所以如果这不是一个好问题或者问题需要更多澄清,我提前道歉。
任务
例如,我有一个表示为大小为 (10,20,3) 的 ndarray 的图像,我试图通过在开头和处插入 1px 来将数组的大小更改为 (12,20,3)图像的结尾。本质上,我正在尝试仅在图像的顶部和底部使用填充来实现图像大小调整。
这基本上是我想要实现的,用较小尺寸的数组表示。
原始数组
[ [[255. 255. 255.]
[255. 255. 255.]
[255. 255. 255.]
[255. 255. 255.]]
[[255. 255. 255.]
[255. 255. 255.]
[255. 255. 255.]
[255. 255. 255.]]]
修改后的数组
[[[ 0. 0. 0.]
[ 0. 0. 0.]
[ 0. 0. 0.]
[ 0. 0. 0.]]
[[255. 255. 255.]
[255. 255. 255.]
[255. 255. 255.]
[255. 255. 255.]]
[[255. 255. 255.]
[255. 255. 255.]
[255. 255. 255.]
[255. 255. 255.]]
[[ 0. 0. 0.]
[ 0. 0. 0.]
[ 0. 0. 0.]
[ 0. 0. 0.]]]
我的计划是按照以下步骤使用 numpy.concatenate。
#1 用这个维度 (1,4,3) 创建一个由 0 组成的数组
#2 将原始数组连接到步骤 1 中的数组。这将创建一个像这样的新数组
[[[ 0. 0. 0.]
[ 0. 0. 0.]
[ 0. 0. 0.]
[ 0. 0. 0.]]
[[255. 255. 255.]
[255. 255. 255.]
[255. 255. 255.]
[255. 255. 255.]]
[[255. 255. 255.]
[255. 255. 255.]
[255. 255. 255.]
[255. 255. 255.]]]
#3 使用第 1 步中的数组并将其附加到第 2 部分中创建的数组中,这最终会给我想要的结果。
但是,我也想知道是否有一种方法可以使用 numpy.insert 并将 (1,4,3) 插入到数组的开头和结尾,而不会使连接复杂化。对此我将不胜感激。
【问题讨论】:
-
您可以一次连接零 (z) 255 个数组 (mid) 和第二个零 .... np.concatenate((z, mid, z)) .... 其中 z。 shape, mid.shape, z.shape ... ((1, 5, 5), (2, 5, 5), (1, 5, 5))
标签: python arrays numpy insert concatenation