Studio KimHippo :D
[Python /NumPy] 4. 배열의 재구조화, 병합, 분할 본문
import numpy as np
# NOTE : 1차원 배열을 3x3배열로 재구조화 시킴.
x4 = np.arange(1, 10)
grid = x4.reshape(3, 3)
grid
# NOTE : 이 코드가 동작하려면 초기 배열의 규모가 형상이 변경된 배열의 규모와 일치해야 한다.
x5 = np.array([1, 2, 3])
# NOTE : reshape를 이용한 행 벡터
x5 = x5.reshape(1,3)
# NOTE : newaxis 메소드를 이용한 행벡터
x2[np.newaxis, : ]
# NOTE : reshape 메소드를 이용한 열벡터
x2.reshape(3, 1)
# NOTE : newaxis 메소드를 이용한 열벡터
x2[ : , np.newaxis]
Out [1] : array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
Out [2] : array([[1, 2, 3]])
Out [3] : array([[1, 2, 3]])
Out [4] : array([[1], [2], [3]])
Out [5] : array([[1], [2], [3]])
x = np.array([1, 2, 3])
y = np.array([3, 2, 1])
z = np.array([99, 99, 99])
grid = np.array([[1, 2, 3],
[4, 5, 6]])
v = np.array([100, 100, 100])
h = np.array([[99], [99]])
# NOTE : 배열을 연결 시켜줌.
np.concatenate([x, y])
# NOTE : 두 개 이상의 배열도 연결시켜줌.
np.concatenate([x, y, z])
# NOTE : concatenate는 2차원 배열도 적용가능함.
np.concatenate([grid, grid])
Out [1] : array([1, 2, 3, 3, 2, 1])
Out [2] : array([ 1, 2, 3, 3, 2, 1, 99, 99, 99])
Out [3] : array([[1, 2, 3], [4, 5, 6], [1, 2, 3], [4, 5, 6]])
# NOTE : 혼합된 차원의 배열 합치기
# np.vstack(vertical stack / 수직 스택), np.hstack(horizontal stack / 수평스택)
np.vstack([grid,v])
np.hstack([grid, h])
Out [1] : array([[ 1, 2, 3], [ 4, 5, 6], [100, 100, 100]])
Out [2] : array([[ 1, 2, 3, 99], [ 4, 5, 6, 99]])
# NOTE : 배열 분할하기
x = [1, 2, 3, 99, 99, 3, 2, 1]
x1, x2, x3 = np.split(x, [3, 5])
print(x1, x2, x3)
grid = np.arange(16).reshape(4,4)
# NOTE
# np.vsplit : 수평으로 분할, np.hsplit : 수직으로 분할
upper, lower = np.vsplit(grid, [2])
print(upper,'\n \n', lower)
left, right = np.hsplit(grid, [2])
print(left, '\n\n', right)
Out [1] : [1 2 3] [99 99] [3 2 1]
Out [2] : [[0 1 2 3] [4 5 6 7]]
[[ 8 9 10 11] [12 13 14 15]]
Out [3] : [[ 0 1] [ 4 5] [ 8 9] [12 13]]
[[ 2 3] [ 6 7] [10 11] [14 15]]
참고
O'REILLY 제이크 밴더플래스 저/ 위키북스 김정인 역 - 파이썬 데이터 사이언스 핸드북
'Python Study > NumPy' 카테고리의 다른 글
[Python / NumPy] 6. 브로드 캐스팅 (0) | 2019.07.08 |
---|---|
[Python / NumPy] 5. NumPy ufunction (0) | 2019.07.08 |
[Python / NumPy] 3. NumPy 배열 인덱싱, 슬라이싱 (0) | 2019.07.07 |
[Python / NumPy] 2. NumPy 배열 속성 (0) | 2019.07.07 |
[Python / NumPy] 1. NumPy를 활용한 여러 배열 만들기 (0) | 2019.07.07 |
Comments