我有一个表示灰度图像的numpy数组,例如
image = numpy.array([
[.0, .0, .0, .0, .1, .3, .5, .0],
[.0, .0, .0, .0, .4, .4, .6, .0],
[.0, .0, .0, .0, .3, .3, .7, .0],
[.0, .0, .0, .0, .0, .0, .0, .0],
[.0, .0, .0, .0, .0, .0, .0, .0],
[.0, .0, .0, .0, .0, .0, .0, .0],
])
我想把一个子数组移到一个新的位置,用一些常量(比如0.0)填充留下的值。例如,将3x3子数组从(1,5)的中心位置移动到(3,3)的中心位置将导致:
numpy.array([
[.0, .0, .0, .0, .0, .0, .0, .0],
[.0, .0, .0, .0, .0, .0, .0, .0],
[.0, .0, .1, .3, .5, .0, .0, .0],
[.0, .0, .4, .4, .6, .0, .0, .0],
[.0, .0, .3, .3, .7, .0, .0, .0],
[.0, .0, .0, .0, .0, .0, .0, .0],
])
有没有一个有效的方法来执行这样的动作?你知道吗
这里有一种使用自定义函数的方法。“中心”的概念仅定义为奇数长度的整数坐标,例如(3 x 3);我的答案也仅限于方块。你知道吗
由于您知道要从何处移动到何处的起始索引,我们可以使用
np.zeros_like
和numpy索引:然后分配:
输出:
相关问题 更多 >
编程相关推荐