2017-09-04 10 views
1

Iは、次のように一定値を有するパッドアレイをしたい(実際には3次元アレイが、簡潔にするために、私はここで、2Dの例を示す):コーナーを塗りつぶさずにnumpy配列を埋め込む方法は?

[[1,1,1], 
[1,1,1], 
[1,1,1]] 

[[0,1,1,1,0], 
[1,1,1,1,1], 
[1,1,1,1,1], 
[1,1,1,1,1], 
[0,1,1,1,0]] 

なるはずですnumpy.padはコーナーを埋めるだろう(そして3Dではエッジも)、これは私が望むものではない。私はそれらを "手動で"ゼロに設定することができましたが、これは面倒です。 3D

これを行うには簡単かつ便利な方法はありますか?ここでは、3Dの場合は、より明確にする

EDIT は一例です:

[[[1]]] 

[[[0,0,0], 
    [0,c,0], 
    [0,0,0]], 

[[0,c,0], 
    [c,1,c], 
    [0,c,0]], 

[[0,0,0], 
    [0,c,0], 
    [0,0,0]]] 

そして2例のパディング厚さは読んでいましたためになる必要があります。

[[[0,0,0,0,0], 
    [0,0,0,0,0], 
    [0,0,c,0,0], 
    [0,0,0,0,0], 
    [0,0,0,0,0]], 

[[0,0,0,0,0], 
    [0,0,0,0,0], 
    [0,0,c,0,0], 
    [0,0,0,0,0], 
    [0,0,0,0,0]], 

[[0,0,c,0,0], 
    [0,0,c,0,0], 
    [c,c,1,c,c], 
    [0,0,c,0,0], 
    [0,0,c,0,0]], 

[[0,0,0,0,0], 
    [0,0,0,0,0], 
    [0,0,c,0,0], 
    [0,0,0,0,0], 
    [0,0,0,0,0]], 

[[0,0,0,0,0], 
    [0,0,0,0,0], 
    [0,0,c,0,0], 
    [0,0,0,0,0], 
    [0,0,0,0,0]]] 
+0

何を入力しますか?あなたの配列には常にすべてのものがありますか? – Divakar

+0

一定の値を使って、質問を編集しました。 – NOhs

+0

3Dケースの2番目の2Dスライスは確かですか?最初のスライスと同じに見えます。 – Divakar

答えて

1

問題はnumpy.pad関数を使って簡単に解決できます。次の文字列値またはユーザ提供の関数 (:https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.pad.htmlソース)のSTRまたは機能 ワン:

numpy.pad機能マニュアルによれば関数に可能なパラメータの一つはモードとすることができます。

これは、コーナーであるかどうかをチェックする関数を渡すことだけです。値が0の場合は1に設定します。この呪いは、3D場合。

希望するもの

関連する問題