조금씩 꾸준히 완성을 향해

[Numpy] 배열의 구조 변경 (reshape, flatten, newaxis) 본문

Python/Numpy & Pandas

[Numpy] 배열의 구조 변경 (reshape, flatten, newaxis)

all_sound 2022. 9. 23. 14:01

reshape() : 배열의 구조를 변경하고 rank(차원수)를 조절

  • array.reshape(변환 shape)
  • np.reshape(array, 변환 shape)
x = np.array([[1, 2, 5, 8], [1, 2, 5, 8]])
print(x.shape)  # 배열 X의 구조 확인
print(x.reshape(-1,)) # 차원을 -1 낮춘다 (2차원 -> 1차원)

x = np.array(range(8)).reshape(4, 2)
print(x) # 배열 x를 4행 2형의 구조로 변경(1차원 -> 2 차원)

 # -1 : 가능한 shape을 자동 계산하여 반영해 준다.
x.reshape(2, -1)  # x를 2행의 배열로 변경 (열은 자동 생성)

x = np.array(range(8)).reshape(2, 2, 2)  # 2행 2열을 가진 2차원 배열로 변경
pritn(x)


flatten() :  데이터 그대로 1차원으로 변경

  •  데이터 개수는 그대로 존재, 배열의 구조만 변경
print(x)
print(x.flatten())

 


newaxis() : 새로운 축 추가

 

x = np.arange(1, 10)
print(x)  # 1차원 배열
print(x[np.newaxis, :5])  # 0의 축 추가 후, 앞에서 4자리 슬라이싱 (행추가)
print(x[:5, np.newaxis])  # 앞에서 4자리 슬라이싱 후, 1의 축 추가 (열추가)