Jupyter Notebookの%timeitと%%timeit(Python)

PythonをJupyter Notebookで使う際の、マジックコマンド(%timeit%%timeit)の使い方です。

%timeitとは

%timeitは1行のプログラムについて処理時間を計測します。

# Create a list containing squares of from 0 to 9999 (List Comprehension)
# Num of loops: 1000 times, Num of tries: 10 times

%timeit -n 1000 -r 10 [x**2 for x in range(10000)]

# Output Result
# 6.75 ms ± 309 µs per loop (mean ± std. dev. of 10 runs, 1,000 loops each)

このように、計測したいプログラムの行頭に回数を指定する。

%%timeitとは

%%timeitと「%」を2つ書くことで、プログラム全体(セル内)の処理時間の計測ができます。

%%timeit -n 1000 -r 10

ret = []
for x in range(10000):
    ret.append(x**2)
    
# Output Result
# 8.25 ms ± 428 µs per loop (mean ± std. dev. of 10 runs, 1,000 loops each)

このようにすると、セル内の処理時間が計測できます。

試した感想

まずは、同じ処理でもループより内包表記の方が速いことが分かります。

また、処理時間計測には時間がかかるため、プログラム実行中はIn [*]のように、*印が表示されます。処理が完了すると、数字に変わります。

めっさん
  • めっさん
  • 当サイトの管理人。ニューヨークの大学を飛び級で卒業。その後日系企業でグローバル案件に携わる。大小様々な企業を転々としながら、マレーシアやアメリカへの赴任経験を持つ。バイリンガルITエンジニアとしていかに楽に稼ぐか日々考えている。年齢は秘密だけど定年も間近かな。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です