[TIL] 넘파이 numpy reshape, flatten

강의 https://www.boostcourse.org/ai100 를 수강하며 배운 내용을 정리한 글입니다.

 

reshape

- Array의 shape의 크기를 변경함, element의 갯수는 동일

import numpy as np
# (2, 4)
test_matrix = [[1, 2, 3, 4], [1, 2, 5, 8]]
np.array(test_matrix).shape

# reshape
np.array(test_matrix).reshape(8,)

# (8,)
np.array(test_matrix).reshape(8,)

 

2 by 2 였는데 한줄로 바뀜 shape

 

# 1번
np.array(test_matrix).reshape(2, 4).shape # (2, 4)

# 2번
np.array(test_matrix).reshape(-1, 2).shape # (4, 2)
# -1: size를 기반으로 row 개수 선정

위에 1번 코드 elements의 수 2*4 = 8 

아래 코드도 size 8을 맞춰서 2 지정해주고 앞에 -1 해주면 알아서 row 개수(4) 지정선정

 

flatten

- 다차원 array를 1차원 array로 변환

(2, 2, 4) -> (16, )

 

test_matrix = [[1, 2, 3, 4], [1, 2, 5, 8]], [[1, 2, 3, 4], [1, 2, 5, 8]]
np.array(test_matrix)

np.array(test_matrix).flatten().size # 16