Cythonの一喜一憂

10
cythonの一喜一憂 棚橋 耕太郎 2015.12.01

Transcript of Cythonの一喜一憂

Page 1: Cythonの一喜一憂

cythonの一喜一憂

棚橋 耕太郎

2015.12.01

Page 2: Cythonの一喜一憂

Python

⭕生産性が高い

⭕みんなから愛されている

⭕機械学習ライブラリや計算ライブラリの充実

Pythonはなんでも夢を叶えてくれる… ただ一つ実行が遅いことを除いては

Page 3: Cythonの一喜一憂

Spoiled by Python convenience- and productivity-wise, spoiled by C++ speed-wise. Now unhappy with both

言語選択で路頭に迷う人

http://programmers.stackexchange.com/questions/197118/spoiled-by-python-convenience-and-productivity-wise-spoiled-by-c-speed-wise

Page 4: Cythonの一喜一憂

simple python code

loopTest(np.ones((10000,10000))) 実行時間 14.2秒

え、私のpython遅すぎ…!?

Page 5: Cythonの一喜一憂

Cython

pythonの一部をC言語にコンパイルして実行可能

変数をcdefを用いて静的に型付けする

Page 6: Cythonの一喜一憂

Cython!!

loopTestCorg(np.ones((10000,10000))) 実行時間 0.000787秒

え、私のpython速すぎ…!?

Page 7: Cythonの一喜一憂

これで幸せなpythonライフを送れる!

Page 8: Cythonの一喜一憂

でもifを入れると…

え、私のcython遅すぎ…!?実行時間 35秒

Page 9: Cythonの一喜一憂

cython -a

黄色い部分ほど、pythonコード 白いところはCにコンパイル可能

iやdが動的型付けになっているのがわかる

Page 10: Cythonの一喜一憂

Come on!!!

え、私のcython速すぎ…!? 実行時間 0.000231秒