1. Home
  2. プログラマーのための線形代数
  3. ベクトルの演算
  4. ベクトルの引き算

ベクトルの引き算

線形代数においてベクトルの引き算は、基本的な演算の一つです。このページではベクトルの引き算について以下のことを解説します。

当ページでわかること

  • ベクトルの引き算とは何か
  • ベクトルの引き算のやり方
  • Pythonでベクトルの引き算

ベクトルの引き算とは

ベクトルとは」では、プログラマーにとってベクトルはデータであり数値のリストであるということを解説しました。物理学や数学ではベクトルは「長さと向きをもつ矢印」であると考えますが、データサイエンスにおいては単なるデータです。

これ以上でも以下でもありません。

そのため物理学や数学では、ベクトルの引き算は 2 つの矢印から新しい別の矢印を作るものですが、私たちプログラマーは基本的にそのように幾何学的に考えることはありません。

プログラマーにとってベクトルの引き算とは、「機械学習のためのデータの準備などの何らかの目的で、同じサイズのベクトル(データ)同士で引き算を行って、同じサイズの新しいベクトル(データ)を作る手段」に過ぎないのです。

ベクトルの引き算のイメージ

以上がプログラマーにとってのベクトルの引き算です。

ベクトルの引き算のやり方

ベクトルの引き算は非常に簡単です。以下の 2 つのベクトル \(a\) と \(b\) を引き算すると、それぞれ同じ場所の要素同士で演算が行われます。

\[\begin{eqnarray}
a&=&
\begin{pmatrix}
a_1 & a_2 & a_3
\end{pmatrix}\\
b&=&
\begin{pmatrix}
b_1 & b_2 & b_3
\end{pmatrix}\\
a-b&=&
\begin{pmatrix}a_1-b_1 & a_2-b_2 & a_3-b_3\end{pmatrix}
\end{eqnarray}\]

たとえば、次のようになります。

\[\begin{eqnarray}
a&=&
\begin{pmatrix}
4 & 5 & 6
\end{pmatrix}\\
b&=&
\begin{pmatrix}
3 & 2 & 1
\end{pmatrix}\\
a-b&=&
\begin{pmatrix}
1 & 3 & 5
\end{pmatrix}
\end{eqnarray}\]

なおベクトルの引き算はお互いの要素の数が同じである場合のみ可能です。お互いのベクトルの要素の数が異なる場合は引き算はできません。

Pythonでベクトルの引き算

Python では NumPy で作成した配列同士を – 演算子で繋ぐことでベクトルの足し算ができます。以下のコードをご覧ください。

In [1]:
# NumPy のインポート
import numpy as np

# 1つ目のベクトルの定義
a = np.array([4, 5, 6])
print(a)
[4 5 6]
In [2]:
# 2つ目のベクトルの定義
b = np.array([1, 2, 3])
print(b)
[1 2 3]
In [3]:
# ベクトルの引き算
c = a - b
print(c)
[3 3 3]

簡単ですね。


一緒に読んでおきたいページ

ベクトルの引き算は、幾何学的には、足す側のベクトルの符号を反転させたものだとお考えください。そう捉えると、以下の記事がベクトルの引き算の幾何学的な理解に役立ちます。