2011-10-08 8 views
4

私のプログラムでは、numpyの配列があり、いくつかの畳み込みフィルタリングを行います。私は簡単に境界チェックを避けるためにnumpyを使用して配列のパディング(そして出力のためにアンパッド)を行う方法を探しています。私はscipyがconvolutionを行うことができることを知っていますが、私は自分でそれを作る理由があります。 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

はnumpyの1.7.0に含めるために予定padモジュールあります - this ticketを参照してください。今のところダウンロードして、with_constant機能を使用してください。

アンパッディングはfield[1:-1, 1:-1]と同じくらい簡単です。

+1

答えを編集したい場合は、パディングが1.7.0に追加されました。 docのリンクはhttp://docs.scipy.org/doc/numpy/reference/generated/numpy.pad.htmlです – Hooked