填充阵列使用numpy
问题描述:
在我的程序中我有一个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
答
有一个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
这真的是卷积?该代码将覆盖所有相邻的单元格,而不考虑其先前的值。你真的*试图做什么? –
它有点触发功能 – Cubius