2011-10-08 114 views
4

在我的程序中我有一个numpy数组,并对它做一些卷积过滤。我正在寻找一些方法来使数组填充(然后unpad输出)轻松地使用numpy来避免边界检查。我知道scipy可以卷积,但我有理由自己做。 gnuplot.py用于输出。填充阵列使用numpy

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

这真的是卷积?该代码将覆盖所有相邻的单元格,而不考虑其先前的值。你真的*试图做什么? –

+0

它有点触发功能 – Cubius

回答

6

有一个pad模块计划列入与NumPy 1.7.0 - 见this ticket。现在,只需下载并使用其功能with_constant即可。

Unpadding和field[1:-1, 1:-1]一样简单。

+1

如果你想编辑答案,填充现在居住在1.7.0。文档链接在这里http://docs.scipy.org/doc/numpy/reference/generated/numpy.pad.html – Hooked