目次

TODO:

インストール

起動

jupyter notebook

マジックコマンド

基本的に IPython のマジックコマンドが分かってれば大丈夫。
IPythonの使い方メモ 参照

jupytext のセットアップ

jupytext を入れておくと、必要に応じて py への自動変換もできるので楽。

pip install jupytext

キーボードショートカット

コマンドモードとエディットモードの切り替え。
[Enter] と [Esc] でコマンドモードとエディットモードの切替を行う事ができる。

以下に、コマンドモード時に使用できるキーボードショートカットを記載する。

キー動作
[Enter]エディットモードに変更する
下のセルに移動する
上のセルに移動する
[Ctrl] + [Enter]セルを実行する
a現在のセルの上にセルを追加する
b現在のセルの下にセルを追加する
c現在のセル内容をコピーする
vコピーしたセルと同じ内容のセルを下に追加する
[Shift] + vコピーしたセルと同じ内容のセルを上に追加する
x現在のセルを削除する
mマークダウン用のセルに変更する
Shift + m下のセルと結合する
hキーボードショートカットのヘルプを表示する

など

マークダウンの記述

対象のセルに移動して[Esc] を押してコマンドモードにした後に [m] を押下する事で、マークダウン用のセルにする事ができる。
※もしくはヘッダのプルダウンから「Markdown」を選択。

https://jupyter-notebook.readthedocs.io/en/stable/examples/Notebook/Working%20With%20Markdown%20Cells.html#Markdown-Cells

一般的なマークダウンの他、LaTeX式の算術式を記述する事ができる。

例)

#### 分散の数式
$$s^2 = \frac{1}{n}\sum_{i=1}^n (x_i - \overline{x})^2$$

結果

variance.png

Tips

全ての変数等を整形して表示する

変数名を書くだけで表示

from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"

df1 = .......
df2 = .......

df1
df2

display による表示

from IPython.display import display

  :
display(df1)
display(df2)

自作モジュールを自動リロードする

以下を行っておくと import 済みのモジュールが実行の度にリロードされる為、モジュールを修正した場合の読み込み直しの手間が減る。

%load_ext autoreload
%autoreload 2

データフレームの表示行数 または 列数を設定する

pandas のデータフレームを表示する際に 行数 または 列数が多い場合は途中が省略して表示されるが、以下の通り最大表示数を設定する事ができる。

import pandas as pd
pd.set_option('display.max_columns', None)
pd.set_option('display.max_rows', None)

共通のスタートアップスクリプト(その1)

各ノートブック共通で行う初期設定などは ~/.ipython/profile_default/startup 配下にファイルを設置する事によって自動で行う事ができる。

※jupyter ではなく ipython の仕組みの模様。
※ファイル名順に読み込まれる為、ファイル名の接頭文字に連番を付与して読み込み順を制御する事が可能。

例) ~/.ipython/profile_default/startup/00-init.ipy

# オブジェクトの自動表示
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"

# オブジェクトの表示用
from IPython.display import display

# 実行する度に自作モジュールを自動リロードする
%load_ext autoreload
%autoreload 2

# グラフを常にインライン表示
%matplotlib inline

# 最大列数、行数の設定
import pandas as pd
pd.set_option('display.max_columns', None)
pd.set_option('display.max_rows', None)

共通のスタートアップスクリプト(その2)

別のやり方として ~/.ipython/profile_default/ipython_config.py に書く方法もある。

まずプロファイルを生成。

ipython profile create
[ProfileCreate] Generating default config file: '/ユーザのホームディレクイトリ/.ipython/profile_default/ipython_config.py'

生成されたプロファイルを以下の様に修正する。

例) ~/.ipython/profile_default/ipython_config.py

  :
# 実行するコマンドを1行ずつ指定
c.InteractiveShellApp.exec_lines = [
    'import numpy as np',
    'import pandas as pd'
]

# 読み込むファイルのPATHを相対 または フルPATHで指定
c.InteractiveShellApp.exec_files = [
    'settings.ipy',
    '/xxx/xxxxx/settings.ipy'
]
  :

他のノートブックを読み込む

やり方はある様だが・・・
https://jupyter-notebook.readthedocs.io/en/stable/examples/Notebook/Importing%20Notebooks.html

たぶん普通にマジックコマンドで %run するのが、いちばんシンプル。

%run other_notebook.ipynb

HTMLを出力する

IPython.display.HTMLを使用してHTMLを出力する事ができる。
これを利用して、ノートブックに動的な機能を付加する事も可能。

以下のサンプルでは最終セルの出力結果のみを表示するボタンを追加している。
※jQueryが利用できる状態のようなので、そのまま利用している。

from IPython.display import HTML

HTML("""
<script>
var show_status = true;
function toggleCells(){
    if (show_status) {
        // 最後のセルの出力結果だけ表示
        var len = $(".rendered").length;
        $(".rendered").hide()
        $(".rendered").eq(len-1).show();
        $(".rendered").eq(len-1).find(".input").hide();
        // ヘッダを非表示
        $("#header").hide();
    } else {
        // 全てのセルを表示
        var len = $(".rendered").length;
        $(".rendered").show();
        $(".rendered").find(".input").show();
        // ヘッダを表示
        $("#header").show();
    }
    show_status = !show_status;
}
toggleCells();
$("body").append('<input type="button" value="表示切替" onclick="toggleCells()" style="position: fixed; top: 20px; right: 20px; z-index: 999;">');
</script>
""")

html(</div>)


添付ファイル: filevariance.png 286件 [詳細]

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-02-13 (水) 07:33:34 (1897d)