백준을 풀 때 numpy를 이용할 일이 가끔 있었습니다. 이번 시간에는 어떻게 numpy array를 초기화 하고, numpy 배열을 어떻게 파이썬의 리스트로 바꾸는지 보도록 하겠습니다. 그리고 list를 어떻게 넘파이 배열로 바꾸는 지도 배워봅시다.

 


 보통 저는 int로 이루어진 배열을 많이 이용하니, 이걸 기준으로 설명해 보도록 하겠습니다.

 

 코드를 보시면, li는 [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]입니다. 2차원 리스트임을 알 수 있어요. 이것을 그대로 np.array의 인자로 넘겨주면 됩니다. 결과는 어떻게 나올까요?

 

 3행 4열짜리 numpy array가 만들어 졌습니다. 

 

 이제 다른 것을 해 봅시다. 1행 10열짜리 int list가 들어갑니다. 그런데, 이것을 2행 5열짜리로 초기화 하고 싶어요. 그럴 때는 어떻게 할까요? 그냥 1행 10열짜리 list를 array의 인자로 두고, 그것의 결과값을 reshape 시켜버리면 되어요. reshape에 들어간 (2, 5)는 2행 5열을 의미합니다.

 

 결과는 위와 같습니다. 그러면 1차원 list를 3차원 numpy array로 초기화 할 수 있을까요?

 

 

 ndmin에 3을 넣어 봅시다.

 

 

 그러면 [[[1, 2]]]로 초기화가 되었음을 알 수 있는데요.

 

 shape를 확인해 보면 (1, 1, 2)임을 알 수 있어요. 3차원이다. 정도만 짚고 넘어가시면 됩니다. 3차원 배열? 1행 2열짜리가 하나 쌓여 있다? 정도로만 짚고 넘어가도 좋겠네요. 모든 요소를 0으로 초기화 하는 것은 어떻게 하면 될까요?

 

 np에는 zeros가 있습니다. 이것은 모든 요소를 0으로 초기화 하는 것입니다. dtype은 int로 썼습니다.

 

 

 그러면 0으로 초기화가 된 numpy array가 딱 하고 나옵니다. 0으로 초기화 하는 것은 자주 쓰일 법 하니 익혀두면 좋을 듯 싶네요.

 


 이제 numpy array를 list로 바꾸는 것도 배워봅시다.

 

 단지, tolist를 호출해 주면 됩니다. 이름 그대로 list로 변환해 줍니다.

 

 실행 결과는 위와 같습니다.