2012-06-20 3 views
2

배열의 'A'모양 (50,3)과 다른 배열의 'B'모양 (1,3)이 있습니다.Numpy의 행에 배열 일치시키기

사실이 B는 A의 행입니다. 따라서 행 위치를 찾아야합니다.

나는 np.where(A==B)을 사용했으나 검색된 위치는 요소를 현명하게으로 나타냅니다. 예를 들어, 내가 얻은 결과는 다음과 같습니다.

>>> np.where(A == B) 
(array([ 3, 3, 3, 30, 37, 44]), array([0, 1, 2, 1, 2, 0])) 

사실 B는 내 경우에는 4 번째 행입니다. 그러나 위의 결과는 (3,0) (3,1) (3,2) 및 기타 요소를 제공하며 요소별로 일치합니다.

대신에 B가 A에서 전체를 검색 할 때 얻은 답인 '3'이 필요하며 (30,1) (37,2) ... 같은 부분은 제거됩니다. 성냥.

Numpy에서 어떻게 할 수 있습니까?

감사합니다.

답변

10

당신은 축 지정할 수 있습니다

numpy.where((A == B).all(axis=1)) 
+1

+1 - 월드 오브 워크래프트 -. 축 매개 변수를 알지 못했습니다. 고맙습니다. –

+1

numpy.where()가 아니라 numpy.all()의 매개 변수임을 유의하십시오. – Benjamin

관련 문제