PPP3: 機械学習 Jupyter Notebook
Jupyter Notebookはちょっと興味あった
$ pip install jupyter numpy scipy pandas matplotlib scikit-learn
全部一気に入れた!
そしてjupyter notebookを起動
$ jupyter notebook
[I 21:36:42.327 NotebookApp] Serving notebooks from local directory: /home/takahiro/study/PPP3-mac/mlprj
[I 21:36:42.327 NotebookApp] The Jupyter Notebook is running at:
[I 21:36:42.327 NotebookApp] http://localhost:8888/?token=35c9d79446a5f7833fc9f011c025ea98c0a21c009059850b
[I 21:36:42.327 NotebookApp] or http://127.0.0.1:8888/?token=35c9d79446a5f7833fc9f011c025ea98c0a21c009059850b
[I 21:36:42.327 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 21:36:42.335 NotebookApp]
To access the notebook, open this file in a browser:
file:///home/takahiro/.local/share/jupyter/runtime/nbserver-25841-open.html
Or copy and paste one of these URLs:
http://localhost:8888/?token=35c9d79446a5f7833fc9f011c025ea98c0a21c009059850b
or http://127.0.0.1:8888/?token=35c9d79446a5f7833fc9f011c025ea98c0a21c009059850b
おお起動した
NewからPython 3を選択
"Untitled"をクリックして"mlprj"に変更
In [ ]:
というセルにコードを入力してShift+Enter
In [1]: a = 1
a
Out[1]: 1
In [ ]:
複数のセルにコードを書いたらどうなるのかな
セルひとつずつ実行してる感じか
上からだーっと実行してるわけではないみたい
そういう実行もできるだろうけど
InとかOutの右の数字は実行回数?
いや、通し番号か
便利なmagicコマンドというのがある
magicコマンドには%
がついてて%lsmagic
で一覧表示
Available line magics:
%alias %alias_magic %autoawait %autocall %automagic %autosave %bookmark %cat %cd %clear %colors %conda %config %connect_info %cp %debug %dhist %dirs %doctest_mode %ed %edit %env %gui %hist %history %killbgscripts %ldir %less %lf %lk %ll %load %load_ext %loadpy %logoff %logon %logstart %logstate %logstop %ls %lsmagic %lx %macro %magic %man %matplotlib %mkdir %more %mv %notebook %page %pastebin %pdb %pdef %pdoc %pfile %pinfo %pinfo2 %pip %popd %pprint %precision %prun %psearch %psource %pushd %pwd %pycat %pylab %qtconsole %quickref %recall %rehashx %reload_ext %rep %rerun %reset %reset_selective %rm %rmdir %run %save %sc %set_env %store %sx %system %tb %time %timeit %unalias %unload_ext %who %who_ls %whos %xdel %xmode
Available cell magics:
%%! %%HTML %%SVG %%bash %%capture %%debug %%file %%html %%javascript %%js %%latex %%markdown %%perl %%prun %%pypy %%python %%python2 %%python3 %%ruby %%script %%sh %%svg %%sx %%system %%time %%timeit %%writefile
Automagic is ON, % prefix IS NOT needed for line magics.
%timeit
で時間を計測
%
ひとつはlineマジック
from random import randint
%timeit -n 10 -r 3 [randint(0, 100) for i in range(10)]
----
23.3 µs ± 732 ns per loop (mean ± std. dev. of 3 runs, 10 loops each)
次は%%timeit
%
ふたつはcellマジック
適用範囲がその行だけかセル全体か、ってことかな
%%time
for i in range(10):
randint(0,100)
----
CPU times: user 36 µs, sys: 5 µs, total: 41 µs
Wall time: 45.5 µs
Jupyter Notebookの便利な所は、作業をノートとして書き残しておける点です。
はてなブログに書いてる場合じゃないんじゃないかという気がしてきた
書き残したノートを、そのままGitリポジトリーに含んでGitHubに上げたり、ファイルを共有することで、作業内容をチームメンバーに共有できます。
mlprj.ipynb
というファイルができてる
これを保存するってことだな
実行結果も合わせて保存されてるみたい
実行結果はセルの実行順に依存しそうだけどそういうのは問題ないのかな
うっかりへんなところで実行したらそれまで注意深く実行してきた結果が水の泡とか
保存やスナップショットもできるようではあるけど