拙著『Excel VBAユーザーのためのPythonプログラミング入門』は、Python標準のIDLE(アイドル)を使って学習を進め、「おわりに」でIDLEに不満を感じ始めた方向けに、Jupyter Notebook(ジュパイターノートブック)をおすすめしています。
Jupyter Notebookをおすすめする理由はいくつかあり、コードを複数回実行した実行時間を簡単に測定できるのもその一つです。
実行したいセルの先頭に「%%timeit」と書くだけで、コードを複数回実行して計測してくれるのです。
マジックコマンド%%timeitの使用例
セルの先頭に「%%timeit」と書き、同じセル内に何らかの処理を書いて実行すると、そのセル内の処理を複数回ループ処理するのを、何回か繰り返して、その平均実行時間と標準偏差を出力してくれます。
例えば、
for i in range(10):
ret = i ** 2
を実行したところ、以下のように出力されました。
1.46 µs ± 29.6 ns per loop (mean ± std. dev. of 7 runs, 1,000,000 loops each)
1,000,000回繰り返すことを7回実行した結果、平均で1.46マイクロ秒(1.46e-6秒)、標準偏差が29.6ナノ秒(29.6e-9秒)であると出力されています。
マジックコマンド%%timeitのN loopsとR runs
処理を何回繰り返すのかも自動的に変更してくれます。
先ほどの
for i in range(10):
の行で指定しているrange関数の引数の値を「100」「1000」「10000」と変更しながら実行すると、以下のような出力が得られました。
14.6 µs ± 707 ns per loop (mean ± std. dev. of 7 runs, 100,000 loops each)
157 µs ± 7.3 µs per loop (mean ± std. dev. of 7 runs, 10,000 loops each)
1.48 ms ± 80.4 µs per loop (mean ± std. dev. of 7 runs, 1,000 loops each)
「N loops each」の部分が、自動的に変化しています。
%% timeit -n
何回ループさせるのかを指定することも可能です。
%% timeit -n 2000
と指定すれば、2,000 loops eachになります。
%% timeit -r
何回実行するかを指定することも可能です。
%% timeit -r 15
と指定すれば、15 runsになります。
もちろん両方を指定することも可能です。
%% timeit -r 10 -n 500
最終更新日時:2023-11-17 08:44
Home » Python » IPython・Jupyterの使い方 » Jupyterなら複数回実行時の時間計測が簡単-%%timeitマジックコマンド