배열의 형태 변경1

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 - 차원의 저주

차원이 증가하면서 학습 데이터 수가 차원의 수보다 적어지면서 모델의 성능이 저하되는 현상을 말한다.

Untitled

차원이 커질수록 데이터들간의 거리가 멀어진다.


배열의 형태 변경2

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]]
arr = arr.ravel()
print(arr)
[ 0  1  2  3  4  5  6  7  8  9 10 11]