태코놀로지

Jupyter/IPython이 제공하는 유용한 기능 본문

Python3/EECS-WinterSchool

Jupyter/IPython이 제공하는 유용한 기능

태코놀로지 2017. 1. 27. 22:23

1.5 Ten Jupyter/IPython essentials

이번 강의에서는 Jupyter(이하 주피터)/IPython에서 자주 사용하는 명령어에 대해서 알아본다. 리눅스 터미널에 익숙하다면 해당 과정은 매우 쉽게 느껴질 것이다. 먼저 파이썬 노트북에서 북마크 기능을 수행해보자. 북마크 기능은 웹 브라우저에서의 북마크 기능과 동일하다. 자주가는 곳을 미리 지정해놓고, 북마크를 통해서 정해놓은 곳으로 이동할 수 있다. 북마크는 '%bookmark bookmark_name' 으로 생성가능하다. 그 이후에는 'cd bookmark_name' 명령어를 통해서 북마크로 이동이 가능하다.

이처럼 주피터에서 제공하는 기능중에는 리눅스에서 동작하는 명령어 일부를 사용할 수 있다. 이 기능은 Pycharm IDE에서도 가능하지만, 터미널 영역과 코드 영역이 분리되어있는 것에 반해, 주피터에서는 Code cell에서 모두 사용할 수 있는 장점이 있다. 'bookmark', 'cd', 'ls' 명령어 외에도 동작하는 명령어가 있지만 모두 싣지는 않았으니 필요에 따라 검색해본다.


다음은 주피터의 특/장점으로 여겨지는 다양한 출력에 대해서 알아보자. 일반 텍스트가 아닌 동영상과 Interactive(이하 인터렉티브) 요소를 출력해본다. IPython 라이브러리를 통해서 유투브의 주소를 가져와서 즉석에서 영상 재생을 할 수 있으며, 위젯 라이브러리를 통해서 동적인 출력창을 만들 수도 있다.



필요에 따라서 일회적으로 사용하는 라이브러리도 있고, 자주 사용하는 라이브러리도 있지만 이들 모두를 암기해서 사용하는 것은 무리다. 그러나 파이썬의 철학에도, PEP8 양식에도 각 라이브러리(함수)에는 Docstring(이하 닥스트링)을 기재할 것을 권장하고 있다. 라이브러리를 제작한 사람이 작성한 사용법과 명세를 '?' 명령어를 통해서 확인할 수 있다.



제작한 파이썬 코드에 대해서 벤치마킹 할 수 있는 명령어도 있다. 'timeit' 명령어를 통해서 임의의 횟수를 반복해보고, 각 경우에 소요된 시간 중 최고로 짧았던 시간을 알려준다. 테스트 케이스의 수는 임의적이긴 하지만 코드가 간단하고 1 회당 시간이 짧을 수록 증가하고, 긴 시간이 필요한 코드의 경우 테스트 케이스가 작다.



주피터에서는 외부 파일에 대한 프로파일링도 수행할 수 있다. 아래의 예시를 확인해보면 두 개의 함수를 정의하고, 리스트 컴프리헨션 기법을 사용하여 리스트를 작성한 뒤 리스트에 포함된 파일들에 대한 프로파일링을 수행하고 있다.



지금까지 주피터/IPython이 다른 IDE와 달리 제공하고 있는 명령어 및 기능에 대해서 간략하게 알아봤다. 이들 중에 외부 파일에 접근하기 위해서 자주 사용하는 명령어는 앞으로의 강의동안 자주 사용될 예정이니 숙지하는 것을 권장한다.

Comments