arr= [[1, 0], [2, 0], [2, 1], [0, 3], [3, 1], [0, 2]] lst= [1, 2]
のようなN×2のnumpy行列arr
と、1次元行列lst
があるときに、
arr
のすべての行のうち、第1要素(右側)がlst
に含まれるような行だけを抽出したいのですが、どうすればよいでしょうか?
たとえばこの場合は、
[[2, 1], [3, 1], [0, 2]]
となるようにしたいです。
関数として書くと、
def my_func(arr, lst): result = [] for i in arr: if np.any(lst == i[1]): result.append(i) return np.asarray(result)
となります。
numpyの機能を使って1行で書くことができればうれしいのですが、どうすればよいでしょうか?
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。