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의 축 추가 (열추가)