# ユークリッド距離(L2ノルム)とマンハッタン距離(L1ノルム)の違いを解説！Pythonで計算してみよう！

> 当サイト【スタビジ】の本記事では、ユークリッド距離(L2ノルム)とマンハッタン距離(L1ノルム)について解説していきます！実際にPythonで計算して、その違いを確認していきましょう！

- URL: https://toukei-lab.com/euclidean-manhattan-distance
- 公開: 2024.01.31 / 更新: 2025.10.08
- サイト: スタビジ（https://toukei-lab.com）

:::talk{who="umatan"}
当サイト【スタビジ】の本記事では、ユークリッド距離(L2ノルム)とマンハッタン距離(L1ノルム)について解説していきます！実際にPythonで計算して、その違いを確認していきましょう！
:::

こんにちは！スタビジ編集部です！

[統計学や機械学習](/machinelearning-statistics)を学んでいると、様々&#x306A;**「距離」**&#x306B;出会うと思います。

ユークリッド距離、マンハッタン距離、[マハラノビス距離](/mahalanobis)などなど、、、。

今回はいくつか存在する距離の中から、**ユークリッド距離**と**マンハッタン距離**に焦点を当てて解説していきます！

様々な分析手法で登場する距離なので、しっかりと押さえておきましょう！

:::talk{who="umatan"}
実際にPythonで計算して、2つの距離の違いも確認していくよ！
:::

以下のYoutube動画でも解説していますので合わせてチェックしてみてください！

::youtube{#ujoEi7gaPcU}

## ユークリッド距離(L2ノルム)とは

![Social strategy](/wp-content/uploads/2020/07/Social-strategy-amico.png)

**ユークリッド距離（L2ノルム）**&#x3068;は、2点間の距離計算に、ピタゴラスの定理の公式を適用した距離です。

<mark>ある2点間の最短距離を求める方法であるとも言えますね。</mark>

![ユークリッド距離](/wp-content/uploads/2024/01/euclidean-manhattan-distance_L2.jpg)

計算式は以下の通り（2次元の場合）。

:::box
$\displaystyle L_{2} =\sqrt{a^2+b^2}$
:::

:::talk{who="robotan"}
高校の数学の授業で習ったなあ！
:::

ちなみに多次元の場合も以下の式のようにピタゴラスの定理が成立します。

:::box
$\displaystyle L_{2} =\sqrt{a^2+b^2+c^2+\cdots +n^2}$
:::

## マンハッタン距離(L1ノルム)とは

![Content](/wp-content/uploads/2017/11/Content-amico.png)

**マンハッタン距離（L1ノルム）**&#x3068;は、2点間の距離計算の際に、次元ごとの距離の絶対値を合計する方法です。

<mark>もう少しわかりやすく説明すると、碁盤の目のような道をタクシーが進む場合の縦と横の距離を合計するという方法です。</mark>

![L1_L2　マンハッタン](/wp-content/uploads/2024/01/euclidean-manhattan-distance_L1_2.jpg)

計算式は以下の通り（2次元の場合）。

:::box
$\displaystyle L_{1} =\left| a \right|+\left| b \right|$
:::

多次元の場合は以下の式のように表すことができます。

:::box
$\displaystyle L_{1} =\left| a \right|+\left| b \right|+\cdots +\left| n \right|$
:::

## それぞれのメリット

![Stories](/wp-content/uploads/2021/09/Bibliophile-amico-min-e1653727708894-1024x927.png)

ユークリッド距離とマンハッタン距離について説明しましたが、それぞれどんなメリットがあるのでしょうか。

<mark>ユークリッド距離のメリットは、**最短距離を表現できること**です。</mark>

その直感的理解のしやすさから、[クラスタリング](/クラスター分析)や[異常検知](/anomaly-detection)など様々な分析手法に用いられています。

:::talk{who="robotan"}
それなら全部ユークリッド距離でもよさそうだけど、、、
:::

しかし、ユークリッド距離よりもマンハッタン距離を用いた方が良い場合もあります。

例えば、以下のようなアンケートデータを分析するとき。

![L1_L2　アンケート](/wp-content/uploads/2024/01/euclidean-manhattan-distance_QA.jpg)

各人のユークリッド距離とマンハッタン距離を計算すると、以下のようになります。

![L1_L2　計算結果](/wp-content/uploads/2024/01/euclidean-manhattan-distance_QA_dist.jpg)

この場合、AさんとBさんの解答は100%異なり、AさんとCさんの解答は50%異なるため、AとBの距離とAとCの距離は2倍違うのが直感的なイメージですが、ユークリッド距離では2÷1.414=1.414倍しか違いがありません。

一方、マンハッタン距離では2倍の違いが現れており、直感に近い結果となっていることがわかります。

つまり、<mark>マンハッタン距離のメリットは、**遠さ(違い)をより厳しく評価できる**ということです。</mark>

このような性質から、[画像認識](/python-image)や[自然言語処理](/natural-language-python)などで用いられることがあります。

:::talk{who="umatan"}
以下の記事ではユークリッド距離とマンハッタン距離を活用した回帰分析について解説しているので、気になる人はチェックしてみよう！
:::

<https://toukei-lab.com/%E7%B7%9A%E5%BD%A2%E5%9B%9E%E5%B8%B0%E3%83%BBlasso%E3%83%BBridge%E3%82%92%E5%AE%9F%E8%A3%85%E3%81%97%E3%81%A6%E3%81%BF%E3%82%88%E3%81%86%EF%BC%81>

## Pythonで計算してみよう

![stories pc](/wp-content/uploads/2021/01/All-the-data-bro-e1613475965440-1024x789.png)

ここからは、Pythonで実際にユークリッド距離とマンハッタン距離を計算してみます。

<mark>次元数を変えてみて、それぞれどのような特徴があるかを見ていきましょう！</mark>

以下の流れで計算をしていきます。

:::box
**1. ライブラリのインストール\
2\. データの準備\
3\. 距離の計算\&#xA;**
:::

### 1. ライブラリのインストール

今回は数値計算ライブラリである[Numpy](/numpy)を使用していきます。

```python
#ライブラリのインストール
import numpy as np
```

### 2. データの準備

2次元の場合と10次元の場合のデータをそれぞれ準備します。

np.arrayを用いて、それぞれのベクトルを配列として扱っていきます。

```python
#データの準備

#2次元の場合
a = np.array([1,2]) 
b = np.array([5,6])

#10次元の場合
c = np.array([1,1,1,1,1,1,1,100,100,100])
d = np.array([1,1,1,1,1,1,1,1,1,1])
```

### 3. 距離の計算

2点abの距離(2次元)と2点cdの距離(10次元)をそれぞれ計算していきましょう。

Numpyのnp.linalg.norm(配列A – 配列B)という関数を使用しています。

```python
#距離の計算

#2次元の場合
#ユークリッド距離を計算
dist_Euclidean = np.linalg.norm(a - b)
print('abのユークリッド距離:',dist_Euclidean)

#マンハッタン距離を計算(ord=1を指定することで計算可能)
dist_Manhattan = np.linalg.norm(a - b, ord=1)
print('abのマンハッタン距離:',dist_Manhattan)

#10次元の場合
#ユークリッド距離を計算
dist_Euclidean = np.linalg.norm(c - d)
print('cdのユークリッド距離:',dist_Euclidean)

#マンハッタン距離を計算(ord=1を指定することで計算可能)
dist_Manhattan = np.linalg.norm(c - d, ord=1)
print('cdのマンハッタン距離:',dist_Manhattan)
```

![L1_L2 python実行結果](/wp-content/uploads/2024/01/euclidean-manhattan-distance_python.jpg)

ab間、cd間の両方でユークリッド距離の方が小さいことがわかります。

またcd間の距離に着目すると、ユークリッド距離とマンハッタン距離の違いはかなり大きく、マンハッタン距離の方が大きいことがわかります。

<mark>ベクトルc、dでは10次元の内3次元だけが異なるというデータであったため、マンハッタン距離の方が違いをより厳密に表現できていると言えます。</mark>

**多少の違いは無視してもよい場合はユークリッド距離、多少の違いも検出したい場合はマンハッタン距離を用いる**というような使い分けをしていきましょう！

## まとめ

![画像が生成されました](https://sdmntpreastus.oaiusercontent.com/files/00000000-9f88-61f9-ba72-555d10954f0f/raw?se=2025-10-08T14%3A34%3A11Z\&sp=r\&sv=2024-08-04\&sr=b\&scid=2e6c3c2b-e1e5-5609-9f24-213800e47073\&skoid=03727f49-62d3-42ac-8350-1c0e6559d238\&sktid=a48cca56-e6da-484e-a814-9c849652bcb3\&skt=2025-10-08T00%3A44%3A40Z\&ske=2025-10-09T00%3A44%3A40Z\&sks=b\&skv=2024-08-04\&sig=meAHJcFTNuIodQF4d31kymLRwYdh3P43x3o34gYoUVU%3D)

ここまでご覧いただきありがとうございました！

本記事では、<mark>ユークリッド距離(L2ノルム)とマンハッタン距離(L1ノルム)</mark>について解説しました！

これらの距離は、様々な手法で用いられています。

<mark>それぞれの距離のメリットを考慮して、適切な使い分けをしていきましょう！</mark>

また、今回分析に用いたPythonについて勉強したい方は以下の記事を参考にしてみてください！

<https://toukei-lab.com/python-learn>

さらに詳しくAIやデータサイエンスの勉強がしたい！という方は当サイト「スタビジ」が提供する[スタビジアカデミー](https://toukei-lab.com/achademy/)というサービスで体系的に学ぶことが可能ですので是非参考にしてみてください！

:::box
**AIデータサイエンス特化スクール「スタアカ」**

![スタアカトップ](/wp-content/uploads/2021/11/2bc9f22d0f8dfe24080b83884b7a5ec6-1024x576.jpg)
:::

<table class="table">
<tbody>
<tr>
<th>【価格】</th>
<td>ライトプラン：1280円/月<br>
プレミアムプラン：149,800円</td>
</tr>
<tr>
<th>【オススメ度】</th>
<td><span class="stars" role="img" aria-label="5点中5点" data-value="5"></span></td>
</tr>
<tr>
<th>【サポート体制】</th>
<td><span class="stars" role="img" aria-label="5点中4点" data-value="4"></span></td>
</tr>
<tr>
<th>【受講形式】</th>
<td>オンライン形式</td>
</tr>
<tr>
<th>【学習範囲】</th>
<td>データサイエンスを網羅的に学ぶ<br>
実践的なビジネスフレームワークを学ぶ<br>
SQLとPythonを組み合わせて実データを使った様々なワークを行う<br>
マーケティングの実行プラン策定<br>
マーケティングとデータ分析の掛け合わせで集客マネタイズ</td>
</tr>
</tbody>
</table>

データサイエンティストとしての自分の経験をふまえてエッセンスを詰め込んだのがこちらのスタビジアカデミー、略して「[スタアカ](https://toukei-lab.com/achademy/)」！！

当メディアが運営するスクールです。

<mark>24時間以内の質問対応と現役データサイエンティストによる複数回のメンタリングを実施します！</mark>

カリキュラム自体は、他のスクールと比較して圧倒的に良い自信があるのでぜひ受講してみてください！

他のスクールのカリキュラムはPythonでの機械学習実装だけに焦点が当たっているものが多く、実務に即した内容になっていないものが多いです。

<mark>そんな課題感に対して、実務で使うことの多いSQLや機械学習のビジネス導入プロセスの理解なども合わせて学べるボリューム満点のコース</mark>になっています！

Pythonが初めての人でも学べるようなカリキュラムにしておりますので是非チェックしてみてください！

ウォルマートのデータを使って商品の予測分析をしたり、実務で使うことの多いGoogleプロダクトのBigQueryを使って投球分析をしたり、データサイエンティストに必要なビジネス・マーケティングの基礎を学んでマーケティングプランを作ってもらったり・Webサイト構築してデータ基盤構築してWebマーケ×データ分析実践してもらったりする盛りだくさんの内容になってます！

:::box
**・BigQuery上でSQL、Google Colab上でPythonを使い野球の投球分析**\
**・世界最大手小売企業のウォルマートの実データを用いた需要予測**\
**・ビジネス・マーケティングの基礎を学んで実際の企業を題材にしたマーケティングプランの策定\
・Webサイト構築してデータ基盤構築してWebマーケ×データ分析実践して稼ぐ**
:::

＼今すぐ試す／

::button[スタアカの受講はこちら]{href="https://toukei-lab.com/achademy/"}