Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

NumPy 배열 두 개의 교집합 구하는 방법

이 글에서는 두 개의 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]입니다. 이 두 배열에서 공통으로 존재하는 값은 24이므로, np.intersect1d() 함수의 실행 결과로 [2 4]가 출력됩니다.

참고로 intersect1d() 함수는 중복된 값을 제거하고 오름차순으로 정렬된 결과를 반환하기 때문에, 입력 배열의 순서나 중복 여부와 관계없이 항상 일관된 형태의 결과를 얻을 수 있다는 장점이 있습니다.