Python Jupyter - eiichiromomma/CVMLAB GitHub Wiki

(Python) Jupyter

Jupyter (旧IPython notebook)で色々

Jupyter Notebookの起動

ブラウザ上で入力補完等が働くIPythonのインターフェイスを使えるようになる。 コマンドプロンプトを起動すると

C:\Users\xxxx>_

のような黒い画面が出てくる。基本的な操作は下記(\と¥は基本的に同じもので処理環境によって異なる)

コマンド 説明
dir 現在いるディレクトリ(フォルダ)の中身を表示 dir
cd .. 一つ上のディレクトリに移動 cd ..
cd ディレクトリ名 指定したディレクトリに移動(空白文字を含む場合は""で囲む) cd "My Documents"
ドライブ名 指定したドライブに移動 E:

ディレクトリ名については、自分が居るディレクトリからの表記を相対表記、ドライブ(通常C、CDやUSBドライブだとD, E, F等)の上から表記する絶対パスがある。 例えば\Usersに移動したい場合は

cd \Users

で移動できる。ただし、Windowsの場合、ドライブという概念が存在するので、cdコマンドで他のドライブの場所(パス)を指定しても移動できず、その後にドライブ名をコマンドプロンプトに入力する必要がある。例えばCドライブに居て、Eドライブの\Doc(E:\Doc)に移動したい場合、

cd E:\Doc
E:

とするか

E:
cd \Doc

とする必要がある。

Jupyter Notebookを使うには処理したいデータのある場所にcdコマンドで移動した後に

jupyter-notebook

とすると、デフォルトのブラウザが起動してJupyter Notebookが使える状態になる。

Jupyter Notebookの使い方

右側のNewボタンからNotebooksのPythonを選択すると、プロセスが起動するのであとは普通のIPythonのように使える。唯一注意する点はIn[ ]の所にコマンドを打った後、Enterは唯の改行で、実行するにはShift+Enterということである。

補完や関数リファレンス

ファイル名や関数名,モジュール名,スペシャルコマンド等はTabキーで補完され,ユニークな場合には全部が自動的に補完されるので覚えておくと 非常に速くコードが書ける。

関数については(を入力して数秒待つかShift+Tabで関数のリファレンス等(tooltip)が表示される。

主なスペシャルコマンド

コマンド 説明
ls 現在居るフォルダの中身を表示
pwd 現在居るフォルダを表示
cd FolderName FolderNameに移動
hist 履歴の表示
run ファイル名 .pyスクリプトの実行

cdコマンドのFolderNameで最初の1文字を(円マークの場合もあり)がユーザ領域のトップフォルダ(c:\Users\UserName), /がシステム領域のトップフォルダ(通常c:)を示す。

Cellの概念

Cell単位での処理・表示形式の指定が可能。上のドロップダウンメニューから 選択できる。

Codeの場合

IPythonの場合In[x]とOut[x]が対になっていて入出力が示される。

Markdownの場合

Markdown記法で入力してAlt+Enterすると清書してくれる。ダブルクリックすると編集可能

RAW NBConvert

(多分)変換無しでそのまま表示

Heading

見出し文字列

ショートカットキー

詳細はHelp-Keyboard shortcuts参照だが,Cellを選択した状態のCommand Modeと編集のEdit Mode がある。Command ModeにするにはESCキー。要するにviっぽい動作。

キー 動作 Mode
ESC Command Modeへ Edit
j 下のCellを選択 Command
k 上のCellを選択 Command
dd(dを2回) Cellを削除 Command
z 直前の削除の取消 Command
Enter Cell内での改行。実行はされないので纏めて処理を書く時に使う Edit
Ctrl+Enter Cell内のソースを実行して現在のCellを選択(入力待機ではない) Edit & Command
Shift+Enter Cell内のソースを実行して次のCellを選択(入力待機ではない) Edit & Command
Alt+Enter Cell内のソースを実行して下にCellを挿入 Edit & Command
Tab 入力内容の補完 Edit
Shift+Tab Tooltipの表示 Edit

テスト

定番

InのCellに

print('Hello World')

と打ってShift(またはAlt)+Enterで入力。すると下に"Hello World"が表示される。 ちなみにEnterだと改行されるだけ。

priあたりでTabキーを押すと入力候補も出てくるので便利。

OpenCVのテスト

まず、OpenCVを導入しておく。

py -m pip install opencv-python

または

python3 -m pip install opencv-python

デフォルトの起動フォルダはc:\Users\"UserName"。ひとまずそこにlena.jpgを置いておく。

code セルに

import cv2
img = cv2.imread('lena.jpg')
cv2.imshow('Lena', img)
cv2.waitKey(0)

でAlt+Enterとして別ウィンドウが開いてlena.jpgが表示されれば成功。通常こういう使い方はしない。

インラインで表示したい場合は

img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
import matplotlib.pyplot as plt
plt.imshow(img_rgb)

とすれば良い。(matplotlibのimshowはRGBでOpenCVはBGRなので変換が必要)

OpenCVのGUIがQtベースで作られている場合,拡大するとMATLABのように 画素の各値が表示されて便利なので使い分けになる。

出力の公開

HTML

Webサーバを持っている場合はFile-Download as-HTMLでHTML形式に変換可能。

PandocのサイトからWindows用インストーラをダウンロードし, インストールした後に一回ログアウトか再起動してPATHを有効にしてから利用可能。

画像ファイルもBASE64エンコードしたものが埋め込まれるので.htmlファイル一つで公開できる。ソースは結構強烈だが気にしない。

Jupyter nbiewer

Githubのアカウントさえあれば.ipynbファイルをアップロードしてそのURLを渡せば共有可能。

こんな感じで公開できる

notebookでプレゼン

RISE

今はRISEが良い。git cloneするか、zipを拾ってきて展開し

$ python setup.py install

とするだけで、jupyter notebookにプレゼンテーションボタン(グラフのボタン)が加わる。 プレゼンで使いたいnotebookを開いてメニューから、View-Cell Toolbar-Slideshowとすると各CellにSlide Typeドロップダウンメニューが出てくるので選択。 あとはプレゼンテーションボタンを押せばよい。

Slide Typeの選択が面倒

いちいちをSlide Typeを選ぶのも面倒なので保存して閉じた後に一気に変換する。(Unix系)

$ grep -R -l '"metadata"\: {}' ./*/*.ipynb | xargs sed -i.bak -e 's/"metadata"\: {}/"metadata"\: {"slideshow"\: {"slide_type"\: "subslide"} }/g'

で1階層したのフォルダ内にある.ipynbファイルで未定義のCellを片っ端からsubslideに設定できる。