[Python.NumPy] array 붙이기 hstack, vstack, concatenate - Operation Function II
2020. 12. 9. 05:00ㆍPython과 머신러닝/NumPy 데이터 분석
0. 요약
- 여러 소스로부터 데이터를 받고 나면 이를 합치는 동작이 필요하다.
- 데이터를 입력받아 배열로 만들었다는 가정 하에, hstack/vstack과 concatenate 함수를 통해서 배열을 연결하는 동작을 배워보자.
1. hstack과 vstack
In [1]:a = np.arange(1,4)
a
Out[1]:array([1, 2, 3])
In [2]:b = np.arange(4,7)
b
Out[2]:array([4, 5, 6])
In [3]:np.hstack((a,b))
Out[3]:array([1, 2, 3, 4, 5, 6])
In [4]:np.vstack((a,b))
Out[4]:array([[1, 2, 3], [4, 5, 6]])
- hstack은 horizontal stack의 약자로 두 개의 배열을 좌우로 붙여주는 함수이다.
- 좌우로 붙여야하기 때문에 row의 개수는 동일해야 한다.
- vstack은 vertical stack의 약자로 두 개의 배열을 위아래로 붙여주는 함수이다.
- 위아래로 붙여야하기 때문에 col의 개수는 동일해야 한다.
2. np.concatenate
In [5]:c = np.array([[1, 2], [3, 4]])
d = np.array([[5], [6]])
c, d
Out[5]:(array([[1, 2], [3, 4]]), array([[5], [6]]))
In [6]:np.concatenate((c,d), axis=1)
Out[6]:array([[1, 2, 5],
[3, 4, 6]])
In [7]:e = np.array([[1, 2], [3, 4]])
f = np.array([5, 6]) # shape == (2,)
e, f
Out[7]:(array([[1, 2], [3, 4]]), array([5, 6]))
In [8]:f = f[np.newaxis,:]
f # shape == (1,2)
Out[8]:array([[5, 6]])
In [9]:f.T.shape # shape == (2,1)
Out[9]:(2, 1)
In [10]:np.concatenate((e,f.T), axis=1)
Out[10]:array([[1, 2, 5], [3, 4, 6]])
- hstack/vstack과 동일하게 np.concatenate 함수를 통해서도 두 개의 배열을 붙일 수 있다.
- 위와 같이 axis=1로 concatenate을 할 경우 열을 추가하는 동작을 하고,
- axis=0으로 concatenate을 할 경우 행을 추가하게 된다.
- 여기서도 마찬가지로 추가할 때의 row/col의 개수가 맞아야지 추가할 수 있다.
3. 마무리
- vstack/hstack과 concatenate 함수를 통해서 두 개 이상의 배열을 하나로 합칠 수 있다.
- 여러 데이터를 하나로 통합하기 위해서는 자주 사용되는 함수인만큼 어떻게 사용되고,
합쳐진 뒤의 데이터가 어떨지 예상할 수 있어야 한다.
관련 글
2020/12/08 - [Python과 머신러닝/Python 데이터 수집] - NumPy 차원별 sum 합, std 표준편차 구하기 - Operation Function I
'Python과 머신러닝 > NumPy 데이터 분석' 카테고리의 다른 글
[Python.NumPy] Array 비교 연산자와 논리 연산자 (1) | 2020.12.11 |
---|---|
[Python.NumPy] Array 간의 연산과 Broadcasting (0) | 2020.12.10 |
[Python.NumPy] 차원별 sum 합, std 표준편차 구하기 - Operation Function I (0) | 2020.12.08 |
[Python.NumPy] 정규분포, 균등분포 데이터 만들기 np.random.normal, uniform - Creation Function IV (0) | 2020.12.07 |
[Python.NumPy] Identity 행렬, eye, diag 함수 이해하기 - Creation Function III (0) | 2020.12.06 |