Jupyter Notebook 매직 커맨드 스스로 요약

전제 조건


  • macOS Catalina 10.15.1
  • anaconda 4.17.12
  • jupyter-notebook 5.0.0
  • Python 3.6.9

  • 매직 명령이란?



    매직 커맨드(Magic Commands)는, IPython의 커널로부터 제공되는 구조. Notebook의 동작에 관련된 기능 외에 디렉토리 이동이나 파일 일람을 표시하는 등의 유틸리티적인 기능을 제공한다.

    매직 명령의 기본



    맨 앞에 %를 입력하고 명령을 입력하십시오. 현재 디렉토리를 출력하는 명령은 다음과 같습니다.
    %pwd
    

    매직 커맨드의 %pwd는 쉘을 이용한 !pwd와 다르지 않은 것처럼 보이지만, !를 이용한 커맨드 실행은 OS의 쉘에 의존하는 반면, 매직 커맨드는 IPython 커널에서 제공되는 기능에 따라 다릅니다.

    매직 커맨드가 어떤 값을 바꾸는 경우 Python 함수를 호출했을 때와 마찬가지로 반환 값을 변수에 할당 할 수 있습니다.
    curr_dir = %pwd
    curr_dir
    

    사용하기 쉬운 매직 명령


  • %time

  • 파이썬 실행 시간을 측정하는 매직 명령.
      %time sum(range(10000))
      CPU times: user 226 μs, sys: 0 ns, total: 226 μs
      Wall time: 230 μs
    


    출력
    설명


    벽 시간
    프로그램 시작부터 종료까지 걸린 시간

    CPU 시간: user
    user CPU time. 프로그램 자체를 실행하는 데 걸린 시간

    sys
    시스템 CPU 시간. OS의 시스템 호출에 필요한 시간


  • %timeit

  • 여러 번 시도한 결과의 측정 값을 요약하여 반환하는 매직 명령. 이하의 경우, 1000회의 반복 처리를 7회 시도한 경우의 시간이 출력된다.
      %timeit sum(range(10000))
      224 µs ± 21.8 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
    

    루프 횟수와 시행 횟수는 옵션으로 지정 가능.
      # ループ回数2000回、試行回数5回
      %timeit -n 2000 -r 5 sum(range(10000))
      215 µs ± 17.9 µs per loop (mean ± std. dev. of 5 runs, 2000 loops each)
    

    여러 줄의 Python 코드에 대해 %timeit을 사용하여 측정을 수행하는 경우 다음과 같이 첫 번째 %를 2 개 연속하여 %%로 설정합니다. (Cell magics)
      %%timeit -n 1000 -r 3
    
      for i in range(1000):
        i * 2
    
      75.2 µs ± 9.58 µs per loop (mean ± std. dev. of 3 runs, 1000 loops each)
    
  • %history

  • 코드 셀의 실행 이력을 일람으로 취득하는 매직 커멘드.
      # 直近5つの履歴を取得
      %history -l 5
    
  • %ls

  • UNIX 명령 ls과 유사한 동작을 수행하는 매직 명령. !ls와 달리 %ls는 OS의 종류를 판단하고 내부에서 실행하는 명령을 구분한다. (macOS의 경우 ls 명령, Windows의 경우 dir 명령)
  • %autosave

  • Auto Save의 빈도를 변경할 수 있습니다. (default120초)
      # Auto Saveを60秒に1回実行する。
      %autosave 60
    
  • %matplotlib

  • Matplotlib에 대한 설정을 수행하는 매직 명령.

  • %matplotlib inline

  • inline을 지정하면 코드 셀 바로 아래에 그래프가 그려집니다.


  • %matplotlib tk

  • tk를 지정하면, 다른 윈도우에 인터랙티브한 그래프가 출력된다.



  • %matplotlib notebook

  • notebook을 지정하면 코드 셀 바로 아래에 대화식 그래프가 출력됩니다.


  • 지정한 출력 방법을 변경하려면 커널을 다시 시작하십시오.

  • 좋은 웹페이지 즐겨찾기