---
file_format: mystnb
kernelspec:
  name: python3
  display_name: Python 3
mystnb:
  merge_streams: true
---

# JupyterLabを使う（30分）

この章では、以降の章でデータ分析等に利用するJupyterLabの使い方を説明します。
まずJupyterLabを起動し、その後Notebook上でPythonのコードを実行します。

## JupyterLabとNotebookとは

**JupyterLab**はオープンソースで開発されているデータ分析、可視化、機械学習などに広く利用されているツールです。
Webアプリケーションとして提供されており、Webブラウザ上で各種プログラムの実行と結果の参照、ドキュメント作成などが行えます。
JupyterLabでは、Notebook（`.ipynb`ファイル）というファイルを作成し、その中でコードを実行します。

**Notebook**は、コード、実行結果、説明の文章を1つのファイルにまとめたものです。
コードは「セル」という単位に分けて書き、セルごとに実行して結果をすぐに確認できます。
また、結果の表示は通常の文字列だけでなく、pandasのDataFrameが見やすい表形式で表示され、Matplotlibなどの可視化ツールを使用してグラフも表示できます。

以下のNotebookの画面では簡単な計算を行うPythonのプログラムとその結果、Markdownのドキュメントが表示されています。

```{figure} images/4_overview.png
:alt: Notebookを開いたJupyterLabの画面

Notebookを開いたJupyterLabの画面（左はファイルブラウザ、右はNotebook）
```

(jupyter-start)=
## JupyterLabを起動する

{ref}`setup-venv`で作成した作業フォルダと仮想環境を使って、JupyterLabを起動します。
作業フォルダに移動し、仮想環境を有効化します。
その後、仮想環境を有効化した状態でJupyterLabを起動します。

`````{tab-set}
:sync-group: os

````{tab-item} Windows
:sync: windows

```{code-block} powershell
:caption: JupyterLabを起動

cd data-analysis
env\Scripts\Activate.ps1
jupyter lab
```
````

````{tab-item} macOS
:sync: macos

```{code-block} zsh
:caption: JupyterLabを起動

cd data-analysis
source env/bin/activate
jupyter lab
```
````
`````

しばらくするとブラウザが開き、JupyterLabの画面が表示されます。
ファイルブラウザには、作業フォルダの中のファイルが表示されます。
なお、JupyterLabを使っている間は、起動したターミナルを閉じないでください。

JupyterLabを終了するときは、メニューから「File」➔「Shut Down」を選びます。
または、JupyterLabを起動したターミナルで{kbd}`Ctrl`+{kbd}`C`を2回押します。

`jupyter`のコマンドが見つからない場合は、仮想環境を有効化しているか確認してください。
詳しくは{ref}`setup-troubleshooting`を参照してください。

### （オプション）uvで環境を作成した場合

{ref}`setup-uv`の手順で環境を作成した場合も、仮想環境を有効化すれば同じ手順で起動できます。
仮想環境を有効化せずに、作業フォルダで次のコマンドを実行して起動することもできます。

```{code-block} text
:caption: uvでJupyterLabを起動

uv run --no-project --python env jupyter lab
```

`--python env`は、作業フォルダの`env`の仮想環境を使うオプションです。

## 基本的な使い方

ここでは、Notebookの作成やセルの操作など、JupyterLabとNotebookの基本的な使い方について説明します。

### Notebookを作成する

JupyterLabを起動すると、初期画面では左側にファイルブラウザ、右側の作業領域にはLauncherが表示されます。
作業領域のNotebookの下にある「Python 3」をクリックすると、新しいNotebookが作成されて開きます。
ファイル名はデフォルトで`Untitled.ipynb`となります。

```{figure} images/4_launcher.png
:alt: JupyterLabの画面

JupyterLabの画面
```

### ファイル名を変更する

Notebookのファイル名を変更するにはメニューから「File」➔「Rename Notebook…」を選びます。
「New Name」に新しい名前（例: `4_jupyter.ipynb`）を入力し、「Rename」をクリックするとファイル名が変更されます。

```{figure} images/4_rename.png
:alt: Notebookのファイル名を変更するダイアログ

Notebookのファイル名を変更する
```

### セルを操作する

Notebookはセル（Cell）と呼ばれる領域にプログラムなどを記入します。
Codeセルに次のコードを入力します。
{kbd}`Shift`+{kbd}`Enter`を押すと実行されます。単に{kbd}`Enter`を押すと改行文字が入力されます。

```{code-cell} ipython3
price = 120
quantity = 3
price * quantity
```

セルには、Pythonのコードを書く「Code」セルと、説明の文章を書く「Markdown」セルなどがあります。
セルの操作には、Notebookの上のツールバーと、選択したセルの右上に表示されるボタンを使います。

```{figure} images/4_toolbar.png
:alt: Notebookのツールバーと、セルの右上のボタン

Notebookのツールバー（上）と、選択したセルの右上のボタン（下）
```

| 操作 | 使うボタン |
|---|---|
| 下にセルを追加する | ツールバーの「+」 |
| セルを実行する | ツールバーの「▶」 |
| セルの種類を変更する | ツールバーのドロップダウン（「Code」または「Markdown」を選ぶ） |
| セルを削除する | セルの右上のゴミ箱のボタン |

セルを実行するときは、先ほど述べた{kbd}`Shift`+{kbd}`Enter`を使うと便利です。
{kbd}`Shift`+{kbd}`Enter`を押すとセルが実行され、次のセルに移動します。
最後のセルでこのキーを押した場合は、新しいセルが下に追加されます。

### Notebookを保存する

Notebookは自動的に保存されますが、ツールバーの左端の保存ボタンをクリックして保存もできます。

### よく使うショートカット

よく使うキーボードのショートカットは次のとおりです。
{kbd}`Esc`を押すと、セルを選択して操作する「コマンドモード」になります。
ショートカットにはコード入力時の編集モードで使用できるものと、{kbd}`Esc`を押したコマンドモードで使用できるものがあります。

```{table} 編集モードのショートカット
| 操作 | Windows | macOS |
|---|---|---|
| セルを実行して次のセルに移動 | {kbd}`Shift`+{kbd}`Enter` | {kbd}`Shift`+{kbd}`Enter` |
| 入力を補完 | {kbd}`Tab` | {kbd}`Tab` |
| コマンドモードに切り替え | {kbd}`Esc` | {kbd}`Esc` |
| 保存 | {kbd}`Ctrl`+{kbd}`S` | {kbd}`Cmd`+{kbd}`S` |
```

```{table} コマンドモードのショートカット
| 操作 | Windows | macOS |
|---|---|---|
| セルを実行して次のセルに移動 | {kbd}`Shift`+{kbd}`Enter` | {kbd}`Shift`+{kbd}`Enter` |
| 編集モードに切り替え | {kbd}`Enter` | {kbd}`Enter` |
| 上にセルを追加 | {kbd}`A` | {kbd}`A` |
| 下にセルを追加 | {kbd}`B` | {kbd}`B` |
| セルを削除 | {kbd}`D`を2回 | {kbd}`D`を2回 |
| Markdownセルに変更 | {kbd}`M` | {kbd}`M` |
| Codeセルに変更 | {kbd}`Y` | {kbd}`Y` |
| 保存 | {kbd}`Ctrl`+{kbd}`S` | {kbd}`Cmd`+{kbd}`S` |
```

ほかのショートカットは、参考情報として[Jupyter TutorialのKeyboard shortcuts](https://jupyter-tutorial.readthedocs.io/en/latest/notebook/shortcuts.html)（英語）を参照してください。

## コードを実行する

「基本的な使い方」で作成したNotebookに続けて、この節のプログラムをセルに入力して実行してください。

```{note}
入力してもうまく動作しない場合などに、{nb-download}`この章のNotebook <4_jupyter.ipynb>`をダウンロードできます。ダウンロードしたファイルを作業フォルダに置き、JupyterLabのファイルブラウザでダブルクリックして開いてください。
ダウンロードしたNotebookには、この章の説明の文章も入っています。タブや図などの一部の書き方は、JupyterLabでは記号のまま表示されます。

自分で作った`4_jupyter.ipynb`と同じ名前のため、上書きしないように注意してください。
```

### Pythonのコードを実行する

「セルを操作する」の例のように、セルの最後の行が式の場合は、式の結果がセルの下に表示されます。
`print()`を使わなくても、変数の中身や計算の結果を確認できます。

前のセルで記述した変数は、次のセルでも使えます。
次のセルを実行すると、`print()`の出力と、最後の式の値の両方が表示されます。

```{code-cell} ipython3
total = price * quantity
print("合計:", total)
total
```

### 入力を補完する

コードの入力中に{kbd}`Tab`キーを押すと、変数名や関数名の候補が表示され選択できます。
次の図は、`pri`と入力して{kbd}`Tab`キーを押したところ、`price`変数と`print`関数が候補として表示されています。

```{figure} images/4_completion.png
:alt: Tabキーで補完の候補が表示された画面

{kbd}`Tab`キーで表示された補完の候補（`price`と`print`）
```

### Markdownを書く

Markdownセルには、見出し、箇条書き、リンクなどの書式を使って説明の文章を書けます。
新しいセルを選択し、ツールバーのドロップダウンで「Markdown」に変更してから、次の内容を入力して{kbd}`Shift`+{kbd}`Enter`で実行します。

```{code-block} markdown
:caption: Markdownセルの例

# 今日のメモ

JupyterLabでは、コードと説明を1つのNotebookにまとめられます。

## この章でやること

- JupyterLabを起動する
- Notebookでコードを実行する
- Markdownでメモを書く

詳しくは[JupyterLabのドキュメント](https://jupyterlab.readthedocs.io/)を参照してください。
```

- `#`で始まる行は見出しです。`#`の数が多いほど小さな見出しになります。
- `-`で始まる行は箇条書きです。
- `[文字](URL)`はリンクです。

実行すると、次のように表示されます。
表示されたMarkdownセルをダブルクリックすると、入力に戻れます。

```{figure} images/4_markdown.png
:alt: 表示されたMarkdownセル

Markdownセルの表示例
```

## 便利な使い方

ここではJupyterLabやNotebookファイルをより便利に使う方法を紹介します。

### マジックコマンドを使う

**マジックコマンド**は、`%`または`%%`で始まるJupyterLabの便利な命令です。

ここでは、よく使われるマジックコマンドの`%timeit`を紹介します。
`%timeit`はプログラムの実行時間を複数回試行して計測するコマンドです。

```{code-cell} ipython3
%timeit sum(range(1000))
```

処理時間は実行するPCによって変わるため、資料と値が違っていてもかまいません。

### シェルコマンドを実行する

セルに`!`を入力して、続けてOSのコマンドを指定すると**シェルコマンド**が実行できます。
次の例ではインストールされているPythonとJupyterのバージョンを確認しています。

```{code-cell} ipython3
!python --version
```

```{code-cell} ipython3
!jupyter --version
```

この章では、JupyterLabを起動し、Notebookでコードを実行する方法を学びました。
次の[](5_pandas.md)では、Notebook上でpandasを使って、表形式のデータの読み込みや加工、集計を行います。
