2017-11-23 33 views
0

数値で配列のインデックスを検索しようとしています。しかし、値は配列でもあります。つまり、多次元配列です。例えばアレイのインデックスを配列の値で見つける方法は?

a = [ 
[[1, 0], [0, 2], [3, 3]], 
[[1, 0], [1, 3], [1, 0]], 
[[4, 0], [2, 3], [3, 0]] 
] 

私は1ある[[1, 0], [1, 3], [1, 0]]のインデックスを、見つけたいです。基本的には、私が持っている配列パターンと一致する配列内の要素を探したいと思います。

numpyを使用してこれを行うにはどうすればよいですか?

+1

[Is配列内の何かの最初のインデックスを返すNumpy関数がありますか?](https://stackoverflow.com/questions/432112/is-there-a-numpy-function-to-return-the-first-index-of配列内の何か) –

+0

これは完璧な複製ではないので、これを閉じるのはあまりありません。 –

答えて

2

放送比較と併せて使用np.flatnonzero:他の回答から

a 

array([[[1, 0], 
     [0, 2], 
     [3, 3]], 

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

     [[4, 0], 
     [2, 3], 
     [3, 0]]]) 

np.flatnonzero((a == [[1, 0], [1, 3], [1, 0]]).all(1).all(1)) 
array([1]) 

借入、あなたはallに複数の軸を渡すことができます。

np.flatnonzero((a == [[1, 0], [1, 3], [1, 0]]).all((1, 2))) 
array([1]) 
1

を使用できnp.allnp.where

np.where(np.all(a==template, axis=(1,2)))[0][0] 
# 1 
関連する問題