2016-10-08 9 views
1

上のすべての値に応じてnumpyの配列からマスクを取得するために:私は値を持つ配列を記入し、私はXを見つける必要があるその後はどうのように私はnumpyの配列を持つ第3の軸

A = np.zeros((X,Y,Z)) 

、yは内の値に応じて座標異なる配列で置き換えるz軸上の配列私は、アレイ

A = [ [ [1,2], [2,1], [0, 0] ], 
     [ [1,1], [1,1], [0, 0] ], ] 

を持ってZ=2

例私は

A[ where A[x,y,:] == [1,2] ] = [2,1] 

ようなものが必要配列

A = [ [ [2,1], [2,1], [0, 0] ], 
     [ [1,1], [1,1], [0, 0] ], ] 

は、それが何らかの形で、単純な達成することが可能です何をもたらすのだろうか?私はx、y座標の反復を避けたいと思います。

+1

あなたはサンプルケースと予想される出力を追加してもらえますか? – Divakar

+0

@Divakar Done。十分でない場合は、私に知らせてください。 – matousc

答えて

3

一つのベクトル化されたアプローチ -

A[(A == [1,2]).all(-1)] = [2,1] 

サンプル実行 -

In [15]: A 
Out[15]: 
array([[[1, 2], 
     [2, 1], 
     [0, 0]], 

     [[1, 1], 
     [1, 2], 
     [0, 0]]]) 

In [16]: A[(A == [1,2]).all(-1)] = [2,1] 

In [17]: A 
Out[17]: 
array([[[2, 1], 
     [2, 1], 
     [0, 0]], 

     [[1, 1], 
     [2, 1], 
     [0, 0]]]) 
+0

まあ、ありがとう。 – matousc

関連する問題