使用numpy填充数组
在我的程序中,我有一个numpy数组,并对它进行一些卷积滤波。我想找一种简单的方法来给数组加边框(然后在输出时去掉边框),这样可以避免检查边界。我知道scipy可以进行卷积,但我有自己的理由想自己实现。gnuplot.py被用来输出结果。
def touch(field, coords, value):
field[coords[0], coords[1]] = value
if coords[0] - 1 > 0:
field[coords[0] - 1, coords[1]] = value / 2
if coords[1] - 1 > 0:
field[coords[0], coords[1] - 1] = value / 2
if coords[0] < field.shape[0] - 1:
field[coords[0] + 1, coords[1]] = value / 2
if coords[1] < field.shape[1] - 1:
field[coords[0], coords[1] + 1] = value / 2
1 个回答
6
在Numpy 1.7.0版本中,计划加入一个叫做pad
的模块——你可以查看这个链接了解更多信息。目前,你可以先下载这个模块,并使用它的with_constant
函数。
去掉填充的操作非常简单,只需要用field[1:-1, 1:-1]
就可以了。