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

NumPy로 두 배열 간의 집합 차이(차집합) 구하는 방법

이 글에서는 두 개의 NumPy 배열 사이의 집합 차이(set difference)를 구하는 방법을 다룹니다. 집합 차이란 첫 번째 배열에는 존재하지만 두 번째 배열에는 없는 고유한 값들을 의미합니다. 이를 위해 NumPy 라이브러리에서 제공하는 setdiff1d() 함수를 사용합니다.

setdiff1d() 함수는 array1array2 두 개의 인자를 받으며, array2에는 포함되지 않은 array1의 값들만 정렬된 형태로 반환합니다.

집합 차이의 개념

수학적으로 집합 차이는 A − B로 표현되며, A에는 속하지만 B에는 속하지 않는 원소들의 집합입니다. 예를 들어 A = {2, 4, 6}이고 B = {4}라면, A − B = {2, 6}이 됩니다.

알고리즘

1단계: numpy 라이브러리를 임포트한다.
2단계: 비교할 두 개의 NumPy 배열을 정의한다.
3단계: setdiff1d() 함수를 사용해 두 배열 간의 집합 차이를 계산한다.
4단계: 결과를 출력한다.

예제 코드

import numpy as np

array_1 = np.array([2, 4, 6, 8, 10, 12])
print("Array 1:\n", array_1)

array_2 = np.array([4, 8, 12])
print("\nArray 2:\n", array_2)

set_diff = np.setdiff1d(array_1, array_2)
print("\nThe set difference between array_1 and array_2 is:\n", set_diff)

실행 결과

Array 1:
[ 2  4  6  8 10 12]
Array 2:
[ 4  8 12]
The set difference between array_1 and array_2 is:
[ 2  6 10]

코드 설명

위 코드에서 array_1에는 [2, 4, 6, 8, 10, 12]가 들어 있고, array_2에는 [4, 8, 12]가 들어 있습니다. 두 배열을 비교했을 때 array_2에 없는 array_1의 요소는 2, 6, 10입니다. 따라서 최종 출력 결과인 [2 6 10]이 바로 두 배열의 집합 차이입니다.

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