이 글에서는 두 개의 NumPy 배열 사이의 교집합(intersection)을 구하는 방법을 알아봅니다. 여기서 교집합이란 원래 두 배열에 공통으로 포함되어 있는 요소들만 모아 만든 배열을 의미합니다.
NumPy에서는 별도의 반복문 없이 np.intersect1d() 함수 하나만으로 교집합을 손쉽게 구할 수 있습니다. 이 함수는 두 배열을 비교하여 공통 요소를 찾아주며, 결과는 항상 정렬된 상태로 반환됩니다.
알고리즘
1단계: numpy 라이브러리를 임포트한다. 2단계: 두 개의 NumPy 배열을 정의한다. 3단계: np.intersect1d() 함수를 사용해 두 배열의 교집합을 구한다. 4단계: 공통 요소로 이루어진 배열을 출력한다.
예제 코드
import numpy as np
array_1 = np.array([1,2,3,4,5])
print("Array 1:\n", array_1)
array_2 = np.array([2,4,6,8,10])
print("\nArray 2:\n", array_2)
intersection = np.intersect1d(array_1, array_2)
print("\nThe intersection between the two arrays is:\n", intersection)실행 결과
Array 1: [1 2 3 4 5] Array 2: [2 4 6 8 10] The intersection between the two arrays is: [2 4]
코드 설명
위 예제에서 첫 번째 배열은 [1, 2, 3, 4, 5], 두 번째 배열은 [2, 4, 6, 8, 10]입니다. 이 두 배열에서 공통으로 존재하는 값은 2와 4이므로, np.intersect1d() 함수의 실행 결과로 [2 4]가 출력됩니다.
참고로 intersect1d() 함수는 중복된 값을 제거하고 오름차순으로 정렬된 결과를 반환하기 때문에, 입력 배열의 순서나 중복 여부와 관계없이 항상 일관된 형태의 결과를 얻을 수 있다는 장점이 있습니다.