■ 2차원을 1차원으로 바꾸기
이번에는 앞에서 사용하던 2차원의 배열(darray)을 1차원으로 나타내 보겠습니다.
d10 = darray.reshape(10, ) # darray의 형태를 가로가 10인 형태인 1차원 배열로 바꾸겠다는 의미입니다.
실행 결과
array([ 1, 3, 5, 7, 9, 2, 4, 6, 8, 10])
배열이 하나의 행에 10개의 원소가 있는 형태로 바뀌었네요. 이때 두 번째 행이 첫 번째 행의 마지막 원소 뒤에 붙습니다.
이때 배열의 모습에서 뭔가 이상한 점을 발견하셨나요? 앞에서 배열의 형태를 말할 때 (행, 열)로 표시한다고 하였습니다. 이 규칙대로 하면 (10, )가 아니라 (1, 10)으로 나타내어야 하죠.
하지만 여기서 볼 수 있듯이 1차원 배열일 경우의 형태를 나타낼 때에는 (원소의 개수, )로 나타내기도 합니다.
TIP
넘파이 배열 darray가 변하는 모습은 다음과 같습니다.
처음 |
darray.reshape(5, 2) 명령 후 |
darray.reshape(10, ) 명령 후 |
array = ([1, 3, 5, 7, 9], [2, 4, 6, 8, 10]) |
array([[ 1, 3], [ 5, 7], [ 9, 2], [ 4, 6], [ 8, 10]]) |
array([ 1, 3, 5, 7, 9, 2, 4, 6, 8, 10]) |