22 November 2020

파이썬으로 데이터 분석, 시각화, 머신러닝을 다루면서 scipy 를 종종 사용해 오면서 scipy를 사용하는 코드를 볼 때마다 scipy에 대해 좀 더 알고 싶다는 생각을 해오던 중에 이 책을 읽게 되었다.

책 제목 그대로 “우아한 사이파이”는 멋지고 우아하다. 코드 한 두 줄로 그럴 듯한 결과물을 만들어 내기 때문이다.

파이썬의 이런 우아한 환경은 넘파이와, 팻플롯립, 판다스, 사이킷런 등과 함께 잘 어울려 있는데 가끔 코드 내부를 보면 scipy 를 종종 볼 수 있었다. 하지만 복잡한 통계 계산을 코드 몇 줄로 멋지게 계산해 주는 걸 볼 때마다 그 내부가 복잡하지 않을까 짐작하곤 했다. 마치 호수를 우아하게 헤엄치는 호수의 발 처럼 말이다. 그래서 scipy가 궁금하면서도 익혀보는 걸 두려워 했었는데 마침 이 책을 통해 그 두려움을 조금이나마 해소해 보고자 했다.

이 책에서는 유전자 분석과 이미지, 신호처리 등을 통해 예제를 설명하고 있다. 쉬운 주제는 아니지만 복잡한 계산을 우아하게 만들어 주는 것은 틀림없다.

책 초반부에 나오는 것처럼 넘파이와 사이파이는 파이썬 과학 생태계의 핵심이다. 복잡한 통계, 신호 처리, 이미지 처리 등 복잡한 계산이 들어가는 곳이면 넘파이와 함께 등장하곤 한다.

이 책을 통해 그동안 사이파이 내부에서 어떤 철학으로 어떤 연산이 이루어지는지 조금이나마 이해하는데 도움이 되었다.

깃헙페이지에 가면 책의 소스코드와 설명을 함께 보면서 코드를 실행해 볼 수 있다.

elegant-scipy/elegant-scipy: 1st Edition of Elegant SciPy (O’Reilly Publishers)

링크 클릭만으로 책에 쓰인 이미지와 원서의 설명을 볼 수 있으니 책과 함께 볼 수 있다.

넘파이와 함께 빠른 연산을 위해 꼭 쓰이는 사이파이만을 다룬책이 많지 않은데 이 책으로 사이파이를 정리해 볼 수 있었다.