이번 포스팅에서는 Python numpy 의 집합함수(set functions)에 대해서 알아보겠습니다.
한 개, 혹은 두 개의 1차원 ndarray 집합에 대해서
(1) unique(x) : 배열 내 중복된 원소 제거 후 유일한 원소를 정렬하여 반환
(2) intersect1d(x, y) : 두 개의 배열 x, y 의 교집합을 정렬하여 반환
(3) union1d(x, y) : 두 개의 배열 x, y의 합집합을 정렬하여 반환
(4) in1d(x, y) : 첫번째 배열 x가 두번째 배열 y의 원소를 포함하고 있는지 여부의 불리언 배열을 반환
(5) setdiff1d(x, y) : 첫번째 배열 x로 부터 두번째 배열 y를 뺀 차집합을 반환
(6) setxor1d(x, y) : 두 배열 x, y의 합집합에서 교집합을 뺀 대칭차집합을 반환
해주는 다양한 집합함수가 있습니다.
[ Python numpy 집합 함수 (set functions) ]
순서대로 예를 들어서 설명하겠습니다. 위의 벤다이어그램을 참고하시기 바랍니다.
In [1]: import numpy as np In [2]: x = np.array([1, 2, 3, 1, 2, 4]) In [3]: np.unique(x) Out[3]: array([1, 2, 3, 4])
|
참고로, pure python의 sorted(set(x)) 와 np.unique(x) 는 동일합니다.
In [4]: sorted(set(x)) Out[4]: [1, 2, 3, 4]
|
In [5]: x = np.array([1, 2, 3, 4]) In [6]: y = np.array([3, 4, 6, 5]) In [7]: np.intersect1d(x, y) Out[7]: array([3, 4])
|
(3) np.union1d(x, y) : 두 개의 배열 x, y의 합집합을 정렬하여 반환 |
In [8]: x = np.array([1, 2, 3, 4]) In [9]: y = np.array([3, 4, 6, 5]) In [10]: np.union1d(x, y) Out[10]: array([1, 2, 3, 4, 5, 6])
|
(4) np.in1d(x, y) : 첫번째 배열이 두번째 배열의 원소를 포함하고 있는지 여부의 불리언 배열을 반환 |
In [11]: x = np.array([1, 2, 3, 4, 5, 6]) In [12]: y = np.array([2, 4]) In [13]: np.in1d(x, y) Out[13]: array([False, True, False, True, False, False])
|
(5) np.setdiff1d(x, y) : 첫번째 배열 x로 부터 두번째 배열 y를 뺀 차집합을 반환 |
In [14]: x = np.array([1, 2, 3, 4]) In [15]: y = np.array([3, 4, 5, 6]) In [16]: np.setdiff1d(x, y) Out[16]: array([1, 2])
|
(6) np.setxor1d(x, y) : 두 배열 x, y의 합집합에서 교집합을 뺀 대칭차집합을 반환 |
In [17]: x = np.array([1, 2, 3, 4]) In [18]: y = np.array([3, 4, 5, 6]) In [19]: np.setxor1d(x, y) Out[19]: array([1, 2, 5, 6])
|
많은 도움이 되었기를 바랍니다.