我有一个nxm字段,我想创建一个矩阵,其中包含到特定位置的曼哈顿距离。此外,场在所有端部(圆环体)上环绕
我能以Numpy fast(无需执行缓慢的洪水填充循环)生成此文件吗
例如,函数将返回
f(x=2, y=3, size_x=8, size_y=8) ->
array([[5, 4, 3, 2, 3, 4, 5, 6],
[4, 3, 2, 1, 2, 3, 4, 5],
[3, 2, 1, 0, 1, 2, 3, 4],
[4, 3, 2, 1, 2, 3, 4, 5],
[5, 4, 3, 2, 3, 4, 5, 6],
[6, 5, 4, 3, 4, 5, 6, 7],
[7, 6, 5, 4, 5, 6, 7, 8],
[6, 5, 4, 3, 4, 5, 6, 7]])
此处位置(2,3)的距离为零,所有其他位置的距离为曼哈顿/出租车的距离(2,3),同时能够在边缘缠绕
可能会有更快的方法,但这应该有效:
您可以使用numpy.roll为x轴和y轴上的移位创建模板,然后使用
numpy.add.outer
按轴添加它们相关问题 更多 >
编程相关推荐