더북(TheBook)

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])
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.