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に設定できる。