JupyterLabの使い方

### 初めに
先日Python3基礎認定試験に合格したばかりの初学者です。
データ分析試験に向けて、JupyterLabについて理解を深めたいと考えたので、JupyterLabについてまとめたいと思います。

### Jupyter Labとは

https://jupyterlab.readthedocs.io/en/stable/

>JupyterLab は、Project Jupyter 用の次世代の Web ベースのユーザー インターフェイスです。JupyterLab を使用すると、 Jupyter ノートブック、テキスト エディター、ターミナル、カスタム コンポーネントなどのドキュメントやアクティビティを、柔軟で統合された拡張可能な方法で操作できます。

簡単にいうと、プログラムを書いたり、実行できたりするツールのようなもので、ブラウザ上で動作させることができるWebアプリケーション風のIDEのような感じです。
記載したプログラムは、Shift＋Enterで実行でき、1行づつプログラムを実行、確認することができます。
このようなことから対話型実行環境とも呼ばれています。
また、JupyterLabは表やグラフを表示させたり、マークダウン記法で文章を書くこともできます。データに対する実行結果がすぐさま確認できるので、データの分析にはとても相性がよいです。

### インストール方法

https://jupyterlab.readthedocs.io/en/stable/getting_started/installation.html

いろいろやり方があるようですが、私はAnacondaをインストールしていたので下記の手順で実施しました。

```:コマンドプロンプト
conda install jupyterlab
```

### 起動方法
コマンドプロンプトを起動し、下記のコードを実行
```:コマンドプロンプト
jupyter lab
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1744893/5b3db6d0-de94-4198-3d33-ce48ff4914ab.png)

ブラウザ上にこのような画面が立ち上がったらOKです。

### フォルダの作成方法

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1744893/de100c2f-a704-eb6a-5a91-8fdc7bd53a9d.png)

フォルダのマークのようなタブを選択し、作成したい場所まで移動します。
今回はデスクトップにフォルダを作成します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1744893/2bf4dd2b-c1bd-e982-2747-a38d24113dd7.png)

デフォルトではUntitled Folderとなっているのでここを編集してEnterを押す。
作成したフォルダをダブルクリックするとフォルダの中に入れます。

### Notebookの作成

作成するフォルダに入っている状態で、Notebookのところにある、
Python3(ipykernel)をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1744893/3d35df3c-abc2-94e0-a418-f849e8f1e8d5.png)

クリック後、Untitled.ipynbというファイルができているので右クリック→ReNameをクリックか、ファイル名を一度だけクリックしてアクティブにし、F2キーで変更することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1744893/363b8072-5bba-1846-63f1-131e2e3ea719.png)

下記のように操作しても新しいファイルを作成できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1744893/9509dc51-2e10-6c31-ebee-7eb661214c9a.png)

Select KernelでPytnon3（ipykernel）を選択してSelectをクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1744893/bad45dae-fcf8-0b0a-2870-4a106bd3edcb.png)

### Notebookの削除

削除する前にはNotebookをシャットダウンしてから削除します。
ファイル名の左側に緑の〇がついているものは、起動中のNotebookになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1744893/9cd88269-4742-9d1e-6352-3ec0d49915ce.png)

開いているNotebookを×で閉じるだけではシャットダウンされません。
バックグランドでは動いている状態ということになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1744893/f12868ae-e255-cc29-3704-dacdcca14b9f.png)

緑のままです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1744893/8810061b-ffe3-ffee-d614-ac872c304d46.png)

シャットダウン方法は、ファイルを選択後右クリック、Shut Down Kernelをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1744893/7ae358bd-26ac-4e4a-4e5a-1811f24d82c8.png)

このように緑の〇が消えてからDeleteで削除しましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1744893/2117a0c3-7836-6cdc-cdc6-12444ba5ac62.png)

### プログラムの書き方と実行方法
プログラムを書く際は、セルと呼ばれる四角の部分に記載していきます。
セルは左上の＋ボタンで増やすことができます。
セル内でEnterで改行、Shift + Enterで実行できます。
Print関数を使用しなくても結果を得ることができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1744893/0a4e87d1-a251-32d9-e942-263db6def45e.png)

### セルの削除方法
削除したいセルを選択し、左上のEditタブをクリック→DeleteCellをクリックで削除できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1744893/277cd6b5-05ba-607a-e286-60843299e5bb.png)

### マークダウン記法の仕方
マークダウンで書きたいセルを選択し、右上のCodeのプルダウンをMarkdownに変更します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1744893/390cbb5c-0d4d-9408-81b1-b6ff531a7b33.png)

実際に書いてみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1744893/9cd52176-2f59-fdcb-4d56-8daf6009064c.png)

実行結果です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1744893/0e782b3c-468e-55b2-3497-f5e18f64a8f1.png)

### 保存方法

左上のフロッピー？マークをクリックで保存できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1744893/e7135689-7400-5532-b8f4-6991cf40979e.png)

保存されるとタブの●印が×に変わります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1744893/a7a506c3-2217-0902-fb2b-b8b0ea1959dd.png)

名前を付けて保存したい場合

左上のFileタブからSave Notebook As...をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1744893/4881db81-3ab9-c6a5-830b-acbee8d180f0.png)

名前を変更後、Saveをクリックで完了です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1744893/d8a769be-c729-f673-c1e6-124f0209a2d9.png)

### JupyterLabの終了方法
File→ShutDownをクリック（下の方にあるのでスクロールする）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1744893/cf838e01-b9fa-9555-c3a5-1c330fd0e29d.png)

Shut Downをクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1744893/62fbc9ea-82a6-41db-e9c8-5f1e945d128a.png)

### 使い慣れたいショートカットキー
#### コマンドモード
**excキー押下でコマンドモード**
入力タイプ切り替え
| キー | 動作 |
|:-:|:-:|
| m |Markdownに切り替え|
| y |Codeに切り替え|
| r |Rowに切り替え|

実行
| キー | 動作|
|:-:|:-:|
| Ctrl + Enter |コードの実行|
| Shift + Enter |コードの実行＋下のセルに移動|
| Alt + Enter |コードの実行＋下にセルを挿入|

セル
| キー | 動作 |
|:-:|:-:|
| j |下に移動|
| k |上に移動|
| a |セルを上に追加|
| b |セルを下に追加|
| c |セルをコピー|
| x |セルを切り取り|
| v |上のセルに貼り付け|
|Shift + v|下のセルに貼り付け|
|dd|セルの削除|
|z|元に戻す|

#### エディットモード
**Enterキー押下でエディットモード**
| キー | 動作 |
|:-:|:-:|
| Ctrl + / |コメントアウト|
| Tab |選択範囲のインデント追加|
|Shift + Tab|選択範囲のインデントを削除|
| Ctrl + Shift + - |セルを分割|
| Alt + 移動 |単語区切りで移動|
| Alt + Del |単語区切りで削除|

### Magicword
実行時間の表示
```
%%time
```

### その他便利な機能
**Tabキー**
入力補完です。
変数などを途中まで入力後、Tabキー押下で最後まで入力してくれる

**Variable Inspecter**
拡張機能で、変数の中を表示できます。

>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1744893/fd5a2d26-d363-a645-5063-5c31a8ea8eba.png)

参考サイト

https://hk29.hatenablog.jp/entry/2020/09/26/164521

インストール手順（Anaconda環境）
Node.jsをインストールします。
```:コマンドプロンプト
conda install -c conda-forge nodejs
```
Variable Inspecterをインストールします。
```:コマンドプロンプト
jupyter labextension install @lckr/jupyterlab_variableinspector
```
再起動します
```:コマンドプロンプト
jupyter lab
```
使用方法
セルを選択して右クリック→Open Variable Inspectorをクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1744893/afc2464d-3a91-b5e5-64b3-ebff91bea210.png)

先ほど定義した変数が表示されました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1744893/f4d2ea18-5f6f-8e33-44ae-089bd49104ba.png)

ウインドウに合体することもできます。
タブをドラッグし、で右下へドロップします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1744893/fb9c08ec-8765-87e2-4020-ff6bf11e39e6.png)

このように変数の型や中身を確認しながらプログラミングすることができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1744893/d45c60f3-c3cc-dad0-e260-c180b45d6720.png)

**jupyterNotebookで作成したプログラムを.pyに変換**
ファイルを選択し、Fileタブ→Save and Export Notebook As...→ExecutableScriptとクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1744893/8f269896-5290-8b79-6dbe-faa8de15bb22.png)

ダウンロードが実行されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1744893/779f81a7-f80b-b4af-dc7d-b54f56611fde.png)

### 終わりに
JupyterLabを使いこなせるように頑張ります。