배열을 합치는데 사용되는 함수는 크게 두가지가 있습니다. stack 류 함수와 concatenate 함수입니다.
1) stack 류 함수
- vstack
- hstack
- column_stack
2) concatenate 함수
오늘은 concatenate 함수에 대해 알아봅시다. concatenate 함수는 하나의 함수가 vstack, hstack 을 포함합니다. axis 라는 옵션을 이용합니다. axis 옵션만 이해하면 concatante 를 자유자재로 사용할 수 있습니다. axis의 개수는 합치려는 배열의 차원의 개수와 동일합니다. 3차원이면 axis는 0,1,2 세개입니다. shape 함수의 결과가 axis와 동일합니다. shape함수의 첫번째 값이 0번 axis, 두번째 값이 1번 axis 입니다.
1차원 배열
먼저 두개의 벡터를 정의하고 concatenate 함수를 사용하여 합쳐줍시다. 벡터는 1차원이므로 axis가 하나 뿐입니다.
>>> v1=np.array([1,2,3])
>>> v2=np.array([4,5,6])
>>> np.concatenate((v1,v2),axis=0)
array([1, 2, 3, 4, 5, 6])
열방향으로 합쳐집니다. 아쉽지만 concatenate 로 1차원 배열의 행방향 결합은 불가능합니다. 이때는 vstack 을 사용해야 합니다.
2차원 배열
두개의 벡터를 정의합니다.
>>> m1=np.array([[1,2,3],[4,5,6]])
>>> m2=np.array([[7,8,9],[10,11,12]])
합치려는 배열의 차원은 2차원입니다.
>>> m1.shape
(2, 3)
shape 첫번째 자리가 행입니다. 따라서 axis=0으로 설정할 경우 행방향 결합이 됩니다.
>>> np.concatenate((m1,m2),axis=0)
array([[ 1, 2, 3],
[ 4, 5, 6],
[ 7, 8, 9],
[10, 11, 12]])
axis=1로 설정한다면 열방향 결합이 될겁니다.
>>> np.concatenate((m1,m2),axis=1)
array([[ 1, 2, 3, 7, 8, 9],
[ 4, 5, 6, 10, 11, 12]])
차원이 높아져도 같은 원리가 적용됩니다.
'파이썬 > 통계분석' 카테고리의 다른 글
[파이썬 강의] 66. 배열 요소 추가하기 (0) | 2021.10.22 |
---|---|
[파이썬 강의] 65. 축(axis) 개념 이해하기 (0) | 2021.10.22 |
[파이썬 강의] 63. 벡터를 열벡터로 연결 (column_stack 함수) (0) | 2021.10.22 |
[파이썬 강의] 62. 배열을 열 방향(가로 방향)으로 합치기 (hstack 함수) (0) | 2021.10.22 |
[파이썬 강의] 61. 배열을 행 방향(세로 방향)으로 합치기 (vstack 함수) (0) | 2021.10.22 |
댓글
만다린망고님의
글이 좋았다면 응원을 보내주세요!
이 글이 도움이 됐다면, 응원 댓글을 써보세요. 블로거에게 지급되는 응원금은 새로운 창작의 큰 힘이 됩니다.
응원 댓글은 만 14세 이상 카카오계정 이용자라면 누구나 편하게 작성, 결제할 수 있습니다.
글 본문, 댓글 목록 등을 통해 응원한 팬과 응원 댓글, 응원금을 강조해 보여줍니다.
응원금은 앱에서는 인앱결제, 웹에서는 카카오페이 및 신용카드로 결제할 수 있습니다.