2011-10-08 181 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