LoginSignup
18
21

More than 3 years have passed since last update.

Jupyter Notebookの基本操作を学ぶ

Posted at

Jupyter Notebookとは

オープンソースのWebアプリケーション
Pythonの環境構築等の必要がなく、対話的にプログラムの実行ができる(コンソール的な)
またNotebookというだけあって、実行したコードとその結果をドキュメントとして保存できる

どんなだ

image.png
    ↓
image.png
- 入力部分(=セルっていう)にコードを書いて Run もしくは Shift + Enter で実行でき、結果が次の行に表示される
- 最後の行が結果として出力される(代入文のみだと結果は出力されない)
- print関数を使えば、コード中どこでも出力が可能

やってみる

モジュールを使う

import random

random.seed(1)
random.choice(['A', 'B', 'C'])

image.png
- 通常のPythonプログラミングと同じく、importすることでモジュールの使用が可能
- 1行ごとに別々のセルで実行していくこともできる

関数を使う

  • 関数の場合もモジュールとほぼ同じなのでサクッと
def add(a, b):
  return a + b

result = add(1, 2)
result

マークダウンも書ける

image.png
  ↓
image.png

  • 対象のセルを選択した状態でセルタイプをMarkdownにするとマークダウンが記述できる
    • ドキュメント(note)として残す際には便利そうだなぁ

グラフの表示

matplotlib.pyplotモジュールによってグラフの描画などの機能が使える


%matplotlib inline
import matplotlib.pyplot as plt # 長いから as で命名

plt.title('Sample Graph')
plt.plot([1,3,2,4])

これをjupyter notebook上で実行すると
image.png
んぉ〜すごい

  • %matplotlib inline は何?
    • この呪文を初めに書くことで、Notebook内にグラフを描画できる
    • この%で始まるようなやつをマジックコマンドという
    • 書かない場合は plt.show() を呼ばないといけない(1つのセルで複数のグラフを描画する場合は必要やね!)
    • 要するにprintと同じ感じってことか

マジックコマンド

上述した通り、%で始まる記述はマジックコマンドと言う便利なもの
%が1つの場合・・・ラインマジックコマンド (1行にのみ適応)
%が2つの場合・・・セルマジックコマンド (そのセル全体に適応) 例: %time%%time

いくつか見てみる

%matplotlib inline
  • グラフをNotebook内に描画できる(show()の実行を省略できる)
  • inline以外にもある  公式参考:matplotlib
%quickref
  • 簡易ヘルプを下部に表示する Esc、X で消せる
%whos
  • 変数の一覧を表示
%time / %timeit
  • コードの実行時間を計測、表示

    コマンド 対象 実行回数
    %time 1行 1回
    %%time セル 1回
    %timeit 1行 複数回(オプションで指定)
    %%timeit セル 複数回(オプションで指定)
  • %timeit-n で実行回数、-r で個数を指定できる

    わかりにくいので例

JupyterNotebook上.py
%%timeit -n10 -r3
a = 10
b = a + 1
出力.txt
131 ns ± 39.3 ns per loop (mean ± std. dev. of 3 runs, 10 loops each)

つまり -n10:10回繰り返し を -r3:3回やった時間 を計測する(計測は平均と標準偏差)
ちなみに、%timeitは複数の計測だけ行うだけで変数の定義等は書いてもされない

%store
  • Jupyter上のDBへの保存、参照を行う
マジックコマンド 説明
%store 変数 変数をDBに保存
%store -d 変数 変数をDBから削除
%store 変数の一覧表示
%store -r 保存されている全ての変数の読込
%store -z 保存されている全ての変数の削除

JupyterのDBのデータは ~/.ipython/profile_default/db/autorestore にファイルとして保存されている
ファイルの中身はpythonが持つpickleという形式で高速に読み書きできるそう(そんな飲み物あったよなぁ。。)

なんか結構重要そうなのでメモがてら画面をつけておこう
image.png
保存できた!
image.png
消せた!
!コマンドでOSのシステムコマンドが実行できるんやってさ!簡単〜
image.png
pickleで保存
pickleを使う場合はバイナリーを使わないといけないらしいので wb でバイナリーを指定してる
pickleで書き込む時はpickle.dump、読み込みはpickle.loadを使う

感想

JupyterNotebookすごい!色々できすぎできすぎ君や。
機能が多すぎるからできることだけ覚えておいて、都度カンニングでいいかな〜それぞれ使われる頻度もわからんし。
グラフのモジュールとかは見ておいたほうがいいのかな!
この先PandasとかNumPyとかも楽しみ

18
21
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
21