본문 바로가기
IT/Jupyter notebook

Jupyter Notebook 자주 사용하는 매직 커맨드 (%커맨드)

by 소소메모 2020. 3. 30.
반응형

Jupyter Notebook 자주 사용하는 Magic Command 정리

 

 

Ipython (Jupyter Notebook) 에는 마법같은 기능을 제공해주는 Magic Command 가 내장되어 있습니다.

 

당장 Cell 에 %lsmagic 이라고 입력하면 다음과 같은 다양한 Magic Command 목록이 나옵니다.

 

%lsmagic
Available line magics:
%alias  %alias_magic  %autoawait  %autocall  %automagic  %autosave  %bookmark  %cd  %clear  %cls  %colors  %conda  %config  %connect_info  %copy  %ddir  %debug  %dhist  %dirs  %doctest_mode  %echo  %ed  %edit  %env  %gui  %hist  %history  %killbgscripts  %ldir  %less  %load  %load_ext  %loadpy  %logoff  %logon  %logstart  %logstate  %logstop  %ls  %lsmagic  %macro  %magic  %matplotlib  %mkdir  %more  %notebook  %page  %pastebin  %pdb  %pdef  %pdoc  %pfile  %pinfo  %pinfo2  %pip  %popd  %pprint  %precision  %prun  %psearch  %psource  %pushd  %pwd  %pycat  %pylab  %qtconsole  %quickref  %recall  %rehashx  %reload_ext  %ren  %rep  %rerun  %reset  %reset_selective  %rmdir  %run  %save  %sc  %set_env  %store  %sx  %system  %tb  %time  %timeit  %unalias  %unload_ext  %who  %who_ls  %whos  %xdel  %xmode

Available cell magics:
%%!  %%HTML  %%SVG  %%bash  %%capture  %%cmd  %%debug  %%file  %%html  %%javascript  %%js  %%latex  %%markdown  %%perl  %%prun  %%pypy  %%python  %%python2  %%python3  %%ruby  %%script  %%sh  %%svg  %%sx  %%system  %%time  %%timeit  %%writefile

Automagic is ON, % prefix IS NOT needed for line magics.

 

상당히 많은 매직 커맨드가 나옵니다만, 여기서 개인적으로 자주 사용하는 매직 커맨드 몇 개만 정리해보겠습니다.

 

 

1. %matplotlib inline, %matplotlib notebook

 

아마도 Magic Command 가 뭔지 몰라도 %matplotlib line 이 코드는

matplotlib 사용시 거의 기본적으로 적어놓고 시작하지 않나 생각되는 코드입니다.

 

원래 %matplotlib 은 matplotlib 의 backend 를 설정하는 명령어 입니다.

 

%matplotlib -l 을 입력하면 여러개의 선택지가 나오는데요.

그렇지만 보통 Jupyter Notebook 에서는 inline, notebook 을 많이 사용합니다.

 

차이는 아래와 표와 같습니다.

매직 커맨드 의미
%matplotlib inline show 명령 없이도 바로 그래프 표현 (정적)
%matplotlib notebook show 명령 없이도 바로 그래프 표현 (동적)

 

Jupyter Notebook에서 matplotlib 의 그래프를 show 명령어 없이도 바로 그래프로 보여주는 매직 커맨드 입니다.

 

<예시>

 

 

 

2. %time, %timeit, %%time, %%timeit

 

이름 처럼 수행된 시간을 측정하여 반환해주는 매직 커맨드 입니다.

시간을 측정한다는 것은 비슷하지만 아래 표와 같이 차이가 있습니다.

매직 커맨드 적용 범위 의미
%time 라인 명령어 뒤에 한줄 코드가 수행되는데 걸리는 시간을 반환합니다.
%timeit 라인 time + iteration 으로 이해하시면 됩니다. 명령어 뒤에 한줄 코드를 몇번 반복 수행 후 평균 시간을 반환합니다.
%%time %를 두개 적으면, Cell 전체에 적용이 됩니다. 즉, Cell 코드를 모두 수행한 후 시간을 측정하여 반환합니다.
%%timeit %를 두개 적으면, Cell 전체에 적용이 됩니다. 즉, Cell 코드를 모두 반복 수행한 후 평균 시간을 측정하여 반환합니다.

 

<예시>

%tiem, %timeit, %%time, %%timeit 차이

 

 

3. %who, %who_ls, %whos

 

%who, %who_ls, %whos 일명 who 시리즈 매직 키워드는 현재 커널 메모리에 할당된 변수 정보를 반환해 줍니다.

여기서 변수라 함은 일반적으로 생각하는 int, str, float, list 등 이런 변수 개념 보다 큽니다.

특정 이름의 변수에 할당된 모듈, 함수, 등 모든 것이 반환됩니다.

 

%who, %who_ls, %whos 의 차이점은 다음과 같습니다.

 

매직 커맨드 의미
%who 변수명을 tab 으로 단순하게 나열 하여 반환 합니다.
%who_ls 변수명을 리스트 형태로 반환합니다.
%whos 변수명, 유형, 데이터 정보를 상세히 반환합니다.

%whos 가 데이터 정보도 나오기 때문에 주로 이것을 많이 씁니다.

 

 

<예시>

%who, %who_ls, %whos 차이

 

 

반응형

'IT > Jupyter notebook' 카테고리의 다른 글

Jupyter Notebook 실행 위치 지정 방법  (1) 2020.03.17
Jupyter Notebook 크롬으로 실행하는 법  (1) 2020.03.16

댓글