Python/Numpy

[Python] 파이썬 numpy 행렬 대소관계 비교 - greater, less, equal

나비🦋 2024. 4. 25. 16:50
반응형

안녕하세요! 나비입니다 🦋

이번 포스팅에서는 행렬의 각 원소들의 대소관계를 서로 비교할 수 있는 numpy 메소드 3개를 소개해 드리려고 합니다.

greater, less, equal이라는 메소드 이름에서 이미 짐작하셨겠지만, 차원이 같은 두 행렬에 대하여 같은 위치에 있는 원소끼리 크고 작음을 비교해주는 기능을 수행합니다.

greater : 행렬의 요소별로 X > Y의 진리값(true, false)를 반환합니다.
less : 행렬의 요소별로 X < Y의 진리값(true, false)를 반환합니다.
equal : 행렬의 요소별로 X = Y의 진리값(true, false)를 반환합니다.

X, Y는 각각의 요소를 의미합니다.

예제 코드를 통해 더 직관적으로 보여드릴게요!

np.greater

import numpy as np

A = np.array([1,2,3])
B = np.array([3,2,1])

print(np.greater(A,B))
[False, False, True]

(A,B)로 입력했을 때와 (B,A)로 입력했을 때 결과가 달라지기 때문에 행렬의 순서를 잘 체크하셔야 할 것으로 생각됩니다.
A > B의 진리값을 반환하기 때문에, 위와 같이 3개의 bool 값이 array로 출력되었습니다.



np.less

import numpy as np

A = np.array([0,1,2,3])
B = np.array([3,2,1,0])

print(np.less(A, B))
[True, True, False, False]

이번엔 less 함수인데요, greater와 정반대 기능을 수행합니다. A < B인 경우 True를, A > B 또는  A = B인 경우 False를 출력합니다.
greater와 less는 요소가 같은 경우를 True에 포함시키지 않습니다. 미만과 초과의 개념입니다.



np.equal

import numpy as np

A = np.array([0,0,1,1])
B = np.array([0,0,0,0])

print(np.equal(A,B))
[True, True, True, True]

equal 메소드는 두 원소가 같은 경우에 True, 같지 않은 경우에 False를 출력합니다.


예시에서는 1차원 벡터만 보여드렸지만, 세 가지 메소드 모두 더 큰 차원의 행렬에 대해서도 동일하게 작동할 수 있습니다.

반응형