Python Numpy 강좌 : 제 9강 - 차원 확장 및 축소
축 추가
- 결과
- [1 2 3 4]
[[1 2 3 4]]
[[1]
[2]
[3]
[4]]
index
중 np.newaxis
를 이용하여 차원을 확장할 수 있습니다.
행
부분에 np.newaxis
를 입력시, 차원을 한 단계 추가합니다.
열
부분에 np.newaxis
를 입력시, 차원을 분해한 후 한 단계 추가합니다.
- 결과
- [[1 2]
[3 4]]
[[[1 2]]
[[3 4]]]
[3 4]
4
배열[:, :, :, ... , np.newaxis]
를 이용하여 차원을 확장시킬 수 있습니다.
차원이 증가함에 따라 index
의 표시법이 같이 증가합니다.
주로, 슬라이싱를 통한 연산에 사용됩니다.
- 결과
- [[1 4 9]]
[[1 2 3]
[2 4 6]
[3 6 9]]
[[2 4 6]]
[[2 3 4]
[3 4 5]
1[4 5 6]]
차원을 어떻게 나누느냐에 따라, 결과가 상이하게 달라집니다.
주로, 배열[:, np.newaxis]
형태로 계산을 진행합니다.
차원 확장 및 축소
- 결과
- [[1]
[2]
[3]]
[[[1]
[2]
[3]]]
[1 2 3]
Numpy
함수를 통해서도 차원을 확장하거나 축소할 수 있습니다.
차원을 확장하는 경우, 지정된 축을 대상으로 차원을 확장합니다.
np.expand_dims(배열, 축)
을 통해 지정된 축의 차원을 확장할 수 있습니다.
차원을 축소하는 경우, 지정된 축을 대상으로 차원을 축소합니다.
np.squeeze(배열, 축)
을 통해 지정된 축의 차원을 축소할 수 있습니다.
만약, 차원 축소 함수에 축을 입력하지 않으면, 1차원 배열
로 축소합니다.
- 결과
- [[[1 2]
[3 4]]
[[5 6]
[7 8]]]
[[[[1 2 3 4]
[5 6 7 8]]]]
[[1 2]
[3 4]
[5 6]
[7 8]]
만약, 임의의 차원으로 변경하는 경우, reshape
를 통해 명시적으로 차원의 형태를 변경할 수 있습니다.
동일 차원을 사용하더라도, reshape
함수의 요소값으로 형태를 변경할 수 있습니다.
reshape 함수는 브로드캐스팅(Broadcasting)
조건을 만족해야 사용할 수 있습니다.
댓글 남기기