初心者のための Jupyter Notebook 入門

初心者のための Jupyter Notebook 入門

機械学習と人工知能はテクノロジーの世界で新たな流行語になっています。文字通り、この研究分野がいかに重要であるかを誰もが認識しているようです。

データ サイエンティストは、毎回ではないにしても、ある時点で Jupyter ノートブックを使用せずに済むことには同意するでしょう。幅広い AI/ML エンジニアが、アルゴリズム/モデルの作成とテストに使用するツールとしてJupyter Notebookの使用を採用しています。

しかし、ジュピターとは何でしょうか?そして、なぜそれがノートブックと呼ばれるのでしょうか?

ウィキペディアによると、ノートとは、多くの場合罫線が入ったページの紙の本またはバインダーであり、メモやメモの記録、執筆、描画、スクラップブックなどのさまざまな目的に使用されます

基本的に、ノートブックは、テキスト、図、図面、写真、方程式、表、さらにはチャートを使用して、特定のコンテキスト、アイデア、または知識を表現するために使用されると言えます。

では、なぜ Jupyter はノートブックと呼ばれるのでしょうか?

なぜなら、それはまさに上記のことを行うからです。これは、文書、コード、テキスト、画像、方程式、グラフ、視覚化のドラフトを作成したり、表を描画したりするためにも使用されます。

Jupyter Notebook とは何ですか?

Jupyter Notebook は、ライブ コード、方程式、ビジュアライゼーション、および説明テキストを含むドキュメントを作成および共有できるオープンソース Web アプリケーションです。データのクリーニングと変換、数値シミュレーション、統計モデリング、データの視覚化、機械学習などが含まれます。

ほとんどの場合、Jupyter Notebook は Python 環境で使用されます。非常にインタラクティブな出力があり、通常のノートブックと同様に簡単に共有できます。

Jupyter Notebook は何に使用できますか?

複数の言語を書くこと。

Jupyter システムは、Python、Java、R、Julia、Matlab、Octave、Scheme、Processing、Scala などを含む 100 以上のプログラミング言語 (Jupyter エコシステムでは「カーネル」と呼ばれます) をサポートしています。 Notebook に書いたコードを他の人と共有することができます。

Jupyter Notebook で記述できる言語をいくつか紹介します。

パイソン

Jupyter で作成できるすべての言語の中で、ノートブックで最も人気があるのは Python です。 Jupyter 環境内でコードを作成するほぼ全員がPythonを作成します。デフォルトでは、Jupyter は特別なマジック コマンドを使用せずに環境内で Python をサポートします。

 def hello_world():     
print("Hello world!!!") 
hello_world()

そして、出力は次のようになります。

 Hello world!!!

JavaScript

JavaScript は Web でよく知られており、Jupyter で記述することもできます。 Python とは異なり、JavaScript はデフォルトではサポートされていません。特定の特別なコマンドを使用して、実行しているセルにこれが JavaScript コードであることを伝える必要があります。これらのコマンドは、マジック コマンドと呼ばれることがよくあります。 JavaScript の場合、コマンドは%%javascriptです。

Python とは異なり、Jupyter Notebook で実行できる JavaScript コードにも制限があります。

 %%javascript
const text = "hello world"
alert(text)

ジャワ

追加の「カーネル」 、つまり言語を統合できます。このようなカーネルは、 ここにある一連のインストール手順に従ってインストールできます。 Linux の場合は、インストール後、Jupyter ターミナルで次のコマンドを実行します。

 jupyter console --kernel=java 
Jupyter console 5.1.0 
Java 9.0.4+11 :: IJava kernel 1.1.0-SNAPSHOT 
Protocol v5.0 implementation by jupyter-jvm-basekernel 2.2.1-SNAPSHOT 
In [1]:

マットラボ

Matlab は、テクニカル コンピューティング用の高性能言語です。計算、視覚化、プログラミングを使いやすい環境に統合し、問題と解決策が使い慣れた数学的表記法で表現されます。

Jupyter Notebook で Matlab を使用するには、まず Jupyter-Matlab をインストールする必要があります。最初に行う必要があるのは、仮想環境を作成することです。

  • Windows では Jupyter プロンプトを開くか、Linux ではターミナルのみを開き、次のコマンドを入力します。
 conda create -vv -n jmatlab python=3.5 jupyter
  • このターミナルに留まっていることを確認してから、コードを入力してください
source activate jmatlab
  • 次に、Python 用の Matlab カーネルをインストールします。
 pip install matlab_kernal
python -m matlab_kernel install
  • カーネルが正しくインストールされているかどうかを確認する
jupyter kernelspec list
  • MATLAB ディレクトリを見つけます。 「/Applications/MATLAB_R2017a.app」。
  • 「extern/engines/python」サブディレクトリに移動し、Python エンジンをインストールします。
 cd “/Applications/MATLAB_R2017a.app/extern/engines/python”
python setup.py install
  • Jupyter ノートブックを開始する
<span class="n">cd</span> <span class="n">your_working_directory</span>
<span class="n">jupyter</span> <span class="n">notebook</span>

起動すると、Matlab と Python の両方のオプションが表示されるはずです。

値下げ

Jupyter Notebook は、マークダウンを作成する場合に便利です。これは、コードの部分について冗長または詳細な説明を行う場合、ドキュメントを作成する場合、または特定のデータセットの辞書を作成する場合に非常に役立ちます。
以下のコードをノートブックに入力します。

 * [Pandas](#pandas),
  Used for data analysis
* [Numpy](#numpy),
  Used for numerical analysis
* [Matplotlib](#matplotlib),
  Used for data visualizations

出力は次のようになります。

Bash スクリプト

Jupyter Notebook では、 %%bashマジック コマンドを使用して bash スクリプトを使用できます。

テストするには、現在の作業ディレクトリにフォルダーを作成してみましょう。 Notebook のセルに次のコードを入力します。

 %%bash
mkdir Test_Folder

コードを実行し、コードを入力して作業ディレクトリを確認します。

 %%bash
ls

Test_Folderフォルダーが追加されていることがわかります。フォルダーに物理的に移動して確認することもできます。

データの視覚化

matplotlibなどの Python ライブラリを使用すると、ブラウザ内でデータの視覚化を直接実行して表示できます。

matplotlib を使用して非常に基本的な視覚化を作成してみましょう。

まずライブラリをインポートします

from matplotlib import pyplot as plt
%matplotlib inline

次に、次のコードを入力します

x = [1, 2, 3, 4, 5, 6, 7, 8, 9]
y = [11, 12, 13, 14, 15, 16, 17, 18, 19]
plt.plot(x, y) 
Matplotlib の視覚化。
Matplotlib の視覚化。
Matplotlib の視覚化。

さらに興味深いのは、3D ビジュアライゼーションができることです。
まず 3D ビジュアライゼーション ライブラリをインポートする必要があります

from mpl_toolkits import mplot3d
import numpy as np

次に、3D投影を作成します

fig = plt.figure()
ax = plt.axes(projection='3d')

出力は次のようになります。


次に、次のスクリプトを実行します。

3Dプロジェクション

 def f(x, y):
    return np.sin(np.sqrt(x ** 2 + y ** 2))


x = np.linspace(-6, 6, 30)
y = np.linspace(-6, 6, 30)
X, Y = np.meshgrid(x, y)
Z = f(X, Y)


ax = plt.axes(projection='3d')
ax.plot_surface(X, Y, Z, rstride=1, cstride=1,
                cmap='viridis', edgecolor='none')
ax.set_title('surface'); 


3Dプロット図
3Dプロット図
3Dプロット図

数学的および科学的記法

Jupyter Notebook タイプの数学的および科学的方程式内で、Latex などのツールを使用できます。

LaTeX は高品質の写植システムです。これには、技術的および科学的文書の作成のために設計された機能が含まれています。ラテックスについて詳しくは、 こちらをご覧ください。いくつかの簡単な LaTex コードを実行してみましょう。
次の LaTex コマンドを入力します。

 ## $J(\theta_0) = \frac{1}{2m}\sum_{i=0}^{m} (h_\theta(x^{(i)}) - y^{(i)})^2$

出力はこのようなものになるはずです

結論

この記事は、 Jupyter ノートブックを使用して実現できることのほんの表面をなぞっただけです。この記事の例のほとんどは、私がここで共同作業で作成した Jupyter ノートブックにあります。

「初心者のための Jupyter Notebook 入門」についてわかりやすく解説!絶対に観るべきベスト2動画

Python超入門コース 合併版|Pythonの超基本的な部分をたった1時間で学べます【プログラミング初心者向け入門講座】
Pandas入門|02.jupyter Labの使い方|プログラムの記述や実行、表やグラフも表示できるPythonユーザーに人気のツール