2016-07-20 18 views
4

私は2D NumPy配列aとリスト/セット/ 1D NumPy配列bを持っています。私は、すなわち、リストのいずれかを含むNumPy配列行を検索

import numpy as np 

a = np.array([ 
    [1, 2, 3], 
    [4, 5, 3], 
    [0, 1, 0] 
    ]) 

b = np.array([1, 2]) 

# result: [True, False, True] 

bのいずれかを含むaのこれらの行を見つけるために、任意のヒントをご希望ですか?

答えて

5

np.in1dを使用すると、すべての要素のbからの一致をaに見つけることができます。さて、np.in1dは配列を平坦化するので、後で再形成する必要があります。最後に、aの各行に一致するANYが見つかるため、各行に沿ってnp.anyを使用します。したがって、私たちはそのような実装を持つでしょう -

np.in1d(a,b).reshape(a.shape).any(axis=1) 
関連する問題