トップページに戻る

IPython_Magic

IPython magicの紹介

IPython magicとは?

標準のPythonコンソールから拡張されたコマンド

「%」から始まる 複数行に渡る場合は「%%」にする

%ls

シェルの「ls」を呼び出す。 Windowsの場合「dir」と同じ

%cd

シェルと同じく、カレントワーキングディレクトリを変更する。

%pwd

カレントワーキングディレクトリを表示する。

%run [filename]

ファイルをIPython内で実行する。変数はIPythonに残る。

In [1]:
!cat ./run_test.py
import numpy as np
            
arr = np.array([1, 3, 4])        
mylist = []
for i in range(100):
    mylist.append(i)
    np.random.randn(100, 100)
In [2]:
%run ./run_test.py
In [3]:
arr
Out[3]:
array([1, 3, 4])

%run -t [filename]

In [4]:
%run -t ./run_test.py
IPython CPU timings (estimated):
  User   :       0.05 s.
  System :       0.09 s.
Wall time:       0.03 s.

%run -p [filename]

ファイル実行の際、プロファイリングを行う。 各関数について呼ばれた回数と計算時間を計測する。(%prunも似たような機能)

In [5]:
%run -p -s "cumulative" ./run_test.py 
 

%time

ある文を実行する時間を計測する。

%timeit  ← オススメ!

ある文を繰り返し実行し、計算時間の平均を調べる

In [6]:
%timeit 1 + 1
7.16 ns ± 0.225 ns per loop (mean ± std. dev. of 7 runs, 100,000,000 loops each)
In [7]:
%timeit np.random.randn(1000,1000)
25.2 ms ± 822 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)
In [8]:
import numpy as np
A = np.random.randn(1000, 1000)
In [9]:
# 逆行列
%timeit np.linalg.inv(A)
78.1 ms ± 27.5 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)
In [10]:
# ムーア・ペンローズ逆行列
%timeit np.linalg.pinv(A)
382 ms ± 26.4 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
In [11]:
# 行列積
%timeit A @ A
14.7 ms ± 725 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)

%matplotlib inline

IPythonに埋め込むプロットをしたいとき

%matplotlib qt

ポップアップウィンドウにプロットしたいとき

基礎編

応用編