arr = np.arange(12)
print(arr, arr.ndim)
[ 0 1 2 3 4 5 6 7 8 9 10 11] 1
arr = arr.reshape((3,4))
print(arr, arr.ndim)
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]] 2
arr = arr.reshape((2, 3, 2))
print(arr, arr.ndim)
[[[ 0 1]
[ 2 3]
[ 4 5]]
[[ 6 7]
[ 8 9]
[10 11]]] 3
reshape할 때 원래 배열의 원소 갯수와 맞지 않으면 오류가 난다.
reshape 값에 -1을 입력하면 알맞은 값을 자동으로 계산해준다.
-1을 두 개 입력할 수 없고 지정되지 않은 하나의 차원만 계산 가능하다.
arr = np.arange(1,13)
print(arr)
[ 1 2 3 4 5 6 7 8 9 10 11 12]
arr = arr.reshape(3, -1)
print(arr)
[[ 1 2 3 4]
[ 5 6 7 8]
[ 9 10 11 12]]
Curse Of Dimensionality - 차원의 저주
차원이 증가하면서 학습 데이터 수가 차원의 수보다 적어지면서 모델의 성능이 저하되는 현상을 말한다.

차원이 커질수록 데이터들간의 거리가 멀어진다.
resize 함수
reshape과 동일하지만 원본 데이터를 변경시킨다.
arr = np.arange(12)
[ 0 1 2 3 4 5 6 7 8 9 10 11]
arr.resize(3,4)
print(arr)
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
ravel 함수
1차원 배열로 변경해준다.
arr = arr.ravel()
print(arr)
[ 0 1 2 3 4 5 6 7 8 9 10 11]