[Python] numpy에서 reshape(-1,1)가 무엇일까?

서효정·2022년 12월 2일
1

Python

목록 보기
1/1
post-thumbnail

📒 reshape함수

: 배열과 차원을 변형해주는 함수


-  np.reshape(변경할 배열, 차원)

-  배열.reshape(차원)
import numpy as np
a = [1,2,3,4,5,6,7,8]
b = np.reshape(a,(2,4))
c = np.reshape(a,(4,2))
print(b)
print('\n')
print(c)

>>>[[1 2 3 4]
 	[5 6 7 8]]
    
	[[1 2]
	[3 4]
    [5 6]
    [7 8]]

📒 reshape에서 -1의 의미

:  변경된 배열의 ‘-1’ 위치의 차원은 
   “원래 배열의 길이와 남은 차원으로 부터 추정”이 된다는 뜻
x = np.arange(12)
x = x.reshape(3,4)
x
>>> array([[ 0,  1,  2,  3],
       	   [ 4,  5,  6,  7],
       	   [ 8,  9, 10, 11]])


💡 reshape(-1,정수) : 행의 위치에 -1인 경우

x.reshape(-1,1)
>>> array([[ 0],
       	   [ 1],
       	   [ 2],
           [ 3],
           [ 4],
           [ 5],
           [ 6],
           [ 7],
           [ 8],
           [ 9],
           [10],
           [11]])
x.reshape(-1,2)
>>> array([[ 0,  1],
           [ 2,  3],
           [ 4,  5],
           [ 6,  7],
           [ 8,  9],
           [10, 11]])
x.reshape(-1,3)
>>> array([[ 0,  1,  2],
           [ 3,  4,  5],
           [ 6,  7,  8],
           [ 9, 10, 11]])

즉, 행(row)의 위치에 -1을 넣고 열의 값을 지정해주면 변환될 배열의 행의 수는 알아서 지정이 된다는 뜻


💡 reshape(정수,-1) : 열의 위치에 -1인 경우

x.reshape(1,-1)
>>> array([[ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11]])
x.reshape(2,-1)
>>> array([[ 0,  1,  2,  3,  4,  5],
           [ 6,  7,  8,  9, 10, 11]])
x.reshape(3,-1)
>>> array([[ 0,  1,  2,  3],
           [ 4,  5,  6,  7],
           [ 8,  9, 10, 11]])

행(row)의 수를 지정해주면 열은 알아서 자동으로 재배열을 해주는 것

💡 reshape(-1)

x.reshape(-1)
>>> array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11])
x.reshape(1, -1)
>>> array([[ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11]])

-1만 들어가면 1차원 배열을 반환한다
모양상은 x.reshape(1,-1)과 같으나 차원수가 다름







다음의 블로그를 참고했습니다.

profile
Data Analyst

0개의 댓글