2016-06-27 2 views
3

두 가지 (제 경우에는 다차원) 배열을 사전 식 방식으로 비교하는 간단한 방법을 찾을 수 없습니다.두 numpy ndarrays의 사전 비교

e. * -

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

a < b를 들어 I (4) [1 :] 내가 np.arange와 [false, true, true, false]

+0

마지막 true/false는 어떻게 유도됩니까? –

+0

@MosesKoledoye : [Lexicographic comparison (https://en.wikipedia.org/wiki/Lexicographical_order)]과 같은 방법으로 목록과 튜플을 비교합니다. – user2357112

+0

사전 편집. 즉. 첫 번째 숫자가 다른 경우 더 큰 순서의 배열입니다. 만약 그들이 동일하다면 비교는 2. 등으로 간다. –

답변

2

a< 또는 >b인지 여부를 확인하는 중일 경우 다음이 작동해야합니다.

def fn(a, b): 
    # finds index of the first non matching element 
    idx = np.where((a>b) != (a<b))[0][0] 

    if a[idx] < b[idx]: print "a < b" 
    if a[idx] > b[idx]: print "a > b" 
+0

당신의 대답을 편집하여'== True'를 암시 적으로 (그리고 실행 속도가 느리게) 제거하고'^ '를'! ='로 쓰려고합니다. – Eric

+1

아마도'(a> b)! 'nan'을 다루기 위해서 a! = b'에 대해 = (a Eric

0

곱하기를 얻을 수 false을 얻기 위해 내가 원하는 a > b를 들어 [true, false, false, true]
어디서 true을 얻으려면 * 2 그리고 그 축을 합계하십시오.

+0

예제를 제공해 주시겠습니까? – AkiRoss