티스토리 뷰

Python reshape(-1)


reshape 함수는 Python을 통해 머신러닝 혹은 딥러닝 코딩을 하다보면 꼭 나오는 numpy 내장 함수입니다.
다음과 같이 N-Dim tensor의 shape를 재설정해주고 싶은 상황에서 사용됩니다.

for feature in X_train.columns:
    trainInputFeature = X_train[feature].values.reshape(-1,1)
    validInputFeature = X_valid[feature].values.reshape(-1,1)
    verySimpleLearner.fit(trainInputFeature, y_train)

함수의 파라미터에 -1이 들어가면 특별한 의미를 갖는데, 다른 나머지 차원 크기를 맞추고 남은 크기를 해당 차원에 할당해 준다는 의미입니다. 다음의 함수 사용 예시를 보고 감을 익혀보시기 바랍니다.

예시


>> arr = np.zeros(64,64,3)    # 64 * 64 size image with RGB channels
>> arr = getImage()            # Image loaded
>> arr.shape
>> [64,64,3]
>> b = arr.reshape(64*64,3)
>> b.shape
>> [4096,3]
>> c = arr.reshape(16,16,-1)    # -1은 1차와 2차의 크기를 16과 16으로 맞추고 남은 나머지라는 뜻입니다. 
>> c.shape
>> [16,16,48]        # (64*64*3) / (16 * 16) = 48이므로 배열의 세 번째 차원의 크기는 48이 됩니다.

참고


공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday