배열을 결합하기위해서는 특정한 조건이 필요하다. 예를 들어서 행으로 결합한다면 (가로로 붙힌다면) 배열의 세로(행)의 사이즈가 맞아야 한다.
반대로 열로 결합한다면 (세로로 붙힌다면) 당연히 가로 길이가 맞아야 할 것이다.
행으로 결합하기 위해 두 배열을 붙히는데 위의 배열은 세로 길이가 맞아 잘 결합되었지만, 아래 두 배열은 세로 길이가 맞질 않아 결합이 되지 않는다. 따라서 배열을 결합하기 위해선 행/열의 길이를 맞추어야 한다.
np.concatenate((arr_1,arr_2),axis = )
arr_1 와 arr_2 두 배열을 합칠 때 사용한다. axis는 축을 의미하는데 0을 넣으면 열로 결합하기 때문에 (아래로 결합) 열의 크기를 맞추어야 하고 1은 가로로 결합한다는 의미이다.
예시)
import numpy as np
a = np.array([[1,2,3],[4,5,6],[7,8,9]])
b = np.array([[9,8,7],[6,5,4],[3,2,1]])
print(np.concatenate((a,b),axis = 0)) # 세로로 결합
>>> [[1 2 3]
[4 5 6]
[7 8 9]
[9 8 7]
[6 5 4]
[3 2 1]]
np.stack((arr_1,arr_2),axis = )
concatenate함수와 같이 배열을 축을 기준으로 합치지만, 합치려는 축을 제외한 부분의 크기도 같아야 한다. 쉽게 말해서 합치려는 두 배열 모두 행과 열의 크기가 같아야한다.
예시)
import numpy as np
a = np.array([[1,2],[3,4]])
b = np.array([[5,6],[7,8]])
print(np.stack((a,b),axis = 1)) // 가로로 결합
>>> [[[1 2]
[5 6]]
[[3 4]
[7 8]]]
np.vstack((arr_1,arr_2))
배열을 세로로 결합한다. concatenate 함수의 axis = 0과 같은 의미이며 열 개수가 일치해야한다.
예시)
import numpy as np
a = np.array([[1,2],[3,4]])
b = np.array([[5,6],[7,8]])
print(np.vstack((a,b)))
>>>[[1 2]
[3 4]
[5 6]
[7 8]]
np.hstack((arr_1,arr_2))
배열을 가로로 결합한다. concatenate 함수의 axis = 1과 같은 의미이며 행 개수가 일치해야한다.
예시)
import numpy as np
a = np.array([[1,2],[3,4]])
b = np.array([[5,6],[7,8]])
print(np.hstack((a,b)))
>>> [[1 2 5 6]
[3 4 7 8]]
np.dstack((arr_1,arr_2))
배열을 앞 뒤로 결합한다. 3차원 이상 배열에서 사용 가능하다
예시)
import numpy as np
a = np.array([[[1,2],[3,4]],[[5,6],[7,8]]])
b = np.array([[[9,10],[11,12]],[[13,14],[15,16]]])
print(np.dstack((a,b)))
>>> [[[ 1 2 9 10]
[ 3 4 11 12]]
[[ 5 6 13 14]
[ 7 8 15 16]]]
'Python > numpy' 카테고리의 다른 글
(numpy) 배열의 분할 (0) | 2022.10.20 |
---|---|
(numpy) random과 관련된 함수 (0) | 2022.10.20 |
(numpy) 특정 값으로 배열 생성 (np.zeros, np.ones, np.empty, np.full) (0) | 2022.10.20 |
(numpy) 타입변환 (np.astype, np.tolist) (0) | 2022.10.14 |
(numpy) 차원 관련 함수 (np.shape, np.size, np.reshape) (0) | 2022.10.14 |
댓글