30. NumPy 어레이 연결, 분리하기


NumPy 어레이 연결, 분리하기

NumPy 어레이를 연결 (concatenate)하고, 분리 (split)하는 방법에 대해 소개합니다.

numpy.concatenate(), numpy.split(), numpy.array_split() 함수를 사용합니다.



NumPy 어레이 연결하기 (np.concatenate())

예제1

import numpy as np

a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
c = np.array([7, 8, 9])

ab = np.concatenate((a, b))
abc = np.concatenate((a, b, c))

print(ab)
print(abc)
[1 2 3 4 5 6]
[1 2 3 4 5 6 7 8 9]

np.concatenate()는 튜플의 형태로 입력한 어레이들을 결합합니다.

어레이 ab는 어레이 a, b를 연결, 어레이 abc는 어레이 a, b, c를 결합한 어레이입니다.



예제2

import numpy as np

a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])

ab_0 = np.concatenate((a, b), axis=0)   # Default
ab_1 = np.concatenate((a, b), axis=1)

print(ab_0)
print(ab_1)
[[1 2]
 [3 4]
 [5 6]
 [7 8]]
[[1 2 5 6]
 [3 4 7 8]]

a, b는 2차원 어레이입니다.

np.concatenate() 함수의 axis 파라미터를 0으로 지정하면, 첫번째 축을 따라 어레이를 연결합니다.

np.concatenate() 함수의 axis 파라미터를 1로 지정하면, 두번째 축을 따라 어레이를 연결합니다.





NumPy 어레이 분리하기 (np.split(), np.array_split())

예제1

import numpy as np

a = np.array([1, 2, 3, 4, 5, 6])

a0 = np.split(a, 2)[0]
a1 = np.split(a, 2)[1]

print(a0)
print(a1)
[1 2 3]
[4 5 6]

np.split() 함수는 어레이를 분리합니다.

예제에서와 같이 np.split(a, 2)는 어레이 a를 두 개로 분리합니다.

동일한 크기로 분리할 수 없다면 에러 (ValueError)를 발생합니다.



예제2

import numpy as np

a = np.array([1, 2, 3, 4, 5, 6])

a0 = np.array_split(a, 4)[0]
a1 = np.array_split(a, 4)[1]
a2 = np.array_split(a, 4)[2]
a3 = np.array_split(a, 4)[3]

print(a0)
print(a1)
print(a2)
print(a3)
[1 2]
[3 4]
[5]
[6]

np.array_split() 함수도 np.split() 함수와 마찬가지로 어레이를 분리합니다.

예제에서와 같이 np.array_split(a, 4)는 어레이 a를 4개로 분리합니다.

np.array_split()np.split()와 달리 동일한 크기의 어레이로 분리하지 못하더라도 에러를 발생하지 않습니다.



이전글