2014-01-28 5 views
2

나는 N 차원에서 순서쌍의 큰 배열을 가지고 있습니다. 그런 다음 N 차원의 단일 테스트 배열을 사용하여 큰 배열에서 해당 위치의 인덱스를 모두 찾고자합니다. 간단한 예는 다음과 같습니다배열 수가 적은 배열을 찾으십니까?

>>> import numpy as np 
>>> x = np.array( ((1,2),(3,4),(5,6))) 
>>> y = np.array((1,2)) 
>>> x == y 
array([[ True, True], 
    [False, False], 
    [False, False]], dtype=bool) 

은, 그러나,이다 내가 원하는 :

array([True, 
    False, 
    False], dtype=bool) 

이 가능합니까? 큰 배열 전체를 반복하지 않고 인덱스를 찾기 위해 모든 개별 객체를 테스트하고 싶습니다. 큰 배열에는 각 테스트 배열이 나타나는 여러 위치가 있으며 모든 인덱스가 필요합니다.

나는 간단한 것을 놓치고 있습니까?

답변

4
(x == y).all(axis=1) 

그렇게해야합니다. x == y의 각 행에있는 모든 항목이 true인지 테스트하고 결과의 1D 배열을 반환합니다. 대략적으로

numpy.array([all(vector) for vector in x == y]) 
과 같습니다.
관련 문제