-
-
파이썬 넘파이 - 딥러닝 머신러닝을 위한
문용준.문성혁 지음 / 잇플ITPLE / 2020년 6월
평점 :

많은 사람들이 파이썬을 활용해서 다양한 프로그램을 만들고, 테스트도 하고 있다. 특히 수치 계산이나 딥러닝, 머신러닝 같은 인공지능 AI 관련된 부분은 수학에 전문화된 모듈인 넘파이 Numpy를 사용하고 있다.
넘파이는 파이썬 코어가 제공하는 기본 모듈이 아니다 보니, 별도로 import를 해서 써야 한다. 워낙 넘파이가 여러모로 쓸모 있고, 강력하다 보니, 기본 모듈이 아님에도 불구하고, 많은 파이썬 책들이 넘파이를 대부분 다루고 있다. 그런데, 어디까지나 구색 맞추기 정도이다. 자주 쓰는 몇 가지 기능 정도만 소개하고, 넘어가거나, 좀 자세히 다루면, 한 챕터 정도 할애하는 정도다. 그러다 보니, 넘파이의 강력한 수학적 기능을 제대로 익히기 힘들고, 세부적인 조작이나 프로그래밍할 때 주의할 점들을 알기는 어렵다.
게다가 넘파이를 익히는데 더 문제가 되는 것은 수학을 다루는 모듈이다 보니, 사용자의 수학 능력에 따라 그 활용도의 확장성이 달라진 다는 점이다. 아는 만큼 보인다는 소리가 넘파이에도 적용되는 것이다.
이러한 이유 때문에 넘파이를 제대로 알기 위해서는 여태 다뤄진 거처럼 파이썬의 조연 역할이 아닌, 넘파이가 주인공이 된 책이 필요한 것이다. 각종 수학적 지식과 함께 말이다.
'딥러닝 머신러닝을 위한 파이썬 넘파이'이 바로 그러한 책인 것이다. 넘파이를 기초부터 어려운 부분까지 깊이 있게 익힐 수 있고, 수학적 지식의 확장으로 넘파이의 활용도를 보다 넓힐 수 있는 개발자를 위한 책이다. 특히 수학에 관련된 내용을 많이 다루고 있는데, 딥러닝과 머신러닝에 자주 사용되는 벡터와 행렬과 같은 선형대수를 주로 얘기하고 있고, 그래프, 삼각함수, 미적분, 방정식, 확률과 통계 등도 함께 다룬다.

그런데 이 책은 수학 이론 자체를 알려주는 책이 아니다. 열벡터와 행벡터 연산, 여인수, 역행렬, 렐루함수 등 다양한 수학을 다루고 있으나, 어디까지나 공식 또는 개념이나 간단한 특징 정도만 설명하고 있고, 그것을 넘파이에서 어떻게 구현하고, 활용할 수 있는지를 중점적으로 알려준다. 따라서, 수학 지식이 부족하다면, 곳곳에서 진도가 막힐 수 있다. 넘파이에 대한 개념만 이해하겠다면 모르나, 각종 수학식도 맘대로 다루고 싶은 분이라면, 부족한 수학 파트를 별도로 공부하며 봐야 할 것이다.
그리고 또 한 가지. 이 책은 넘파이를 알려주는 책이지, 파이썬 학습서가 아니다. 즉 파이썬을 전혀 모르는 사람이라면, 먼저 파이썬 책을 보고 난 뒤에 봐야 할 것이다. 그래도 다행인 것은 여기서 구현하는 파이썬 코딩이 아주 복잡하고 어려운 것들이 아니므로 일단 파이썬 입문서만 봐도 책 내용을 이해하는 데 충분할 것이다.

총 13개의 챕터로 책이 구성되어 있는데, 각 주제별로 각종 예제들이 계속 등장한다. 이를 통해서, 수술대에서 해부하듯이 넘파이를 구석구석 자세히 알아 본다. 예제들이 단계별로 되어 있어, 따라 하기 쉽다. 같은 챕터에 나오는 코드들은 계속 이어지는 것이므로, 갑자기 내용을 건너 뛰게 되면, 코드를 이해하는 데 어렵거나 혼동될 수 있으므로, 가급적 같은 챕터 안에서는 순서대로 읽어 주는 것이 좋다. 책 후반부에는 그래프가 등장해서 그래프를 그리기 위한, matplotlib 모듈에 대해서도 배울 수 있다.

'딥러닝 머신러닝을 위한 파이썬 넘파이'가 쉬운 책은 아니지만, 개인적으로 참 좋은 책이라 생각하는데, 딱 하나 바라는 개선 사항이 있다. 그것은 바로 찾아보기 부분이다. 책 끝에 일러두기로 나와 있긴 하지만, 이 책의 장점을 제대로 살리지 못하고 있다. ABC 순 찾아보기도 필요하고, 본문에 나오는 예제나 형광펜을 그은 거 같이 표시된 소주제도 책 앞 차례 쪽에 순서대로 목록을 자세히 담거나, 책 뒤에 별도로 넣어주면, 나중에 내가 모르거나 헷갈리는 것이 있을 때, 사전처럼 그때그때 손 쉽게 찾을 수 있어 편리했을 것이다. 이런 기능 요소만 보완해준다면, 넘파이에 관해서는 아주 독보적으로 유용한 책이 되어 줄 거라 생각한다.
넘파이를 깊이 있게 알고 싶은 분, 복잡한 수치 계산 프로그래밍이 필요한 분, 인공지능 관련 각종 바닥 코딩을 해보고 싶은 분 등에게 '딥러닝 머신러닝을 위한 파이썬 넘파이'를 추천한다.