データサイエンスを学び始めると、突然出てくる「ベクトル」「行列」という言葉。
一見、物理や数学の専門用語のように感じますが、実は──データを扱うための言葉なのです。
ベクトル=1人分のデータ
行列=全員分のデータ
と考えると、一気に親しみやすくなります。
この記事では、図とPythonコードを使いながら
「なぜデータ分析にベクトル・行列が必要なのか」を直感的に整理していきます。
データ分析や機械学習を学ぶとき、必ず出てくる「ベクトル」と「行列」。
数学が苦手でも、手を動かしながら理解できる講座で学べば、ぐっと身近になります。
👉 TechAcademy|Pythonで学ぶ統計学・データ分析講座
![]()
この記事では、図とコードを使って「ベクトル=1人分のデータ」「行列=全員分のデータ」という直感をつかみます。
1. ベクトルとは──“1人分のデータ”をひとまとめに
ベクトルとは、複数の数値をひとつにまとめたもので、データ分析では、1人の観測データや1つのサンプルを表すときに使われます。
たとえば、ある人のプロフィールを次のように整理するとします。
| 属性 | 値 |
|---|---|
| 年齢 | 25 |
| 身長 | 170 |
| 体重 | 60 |
この3つの数値を「まとめて1つのかたまり」にしたものがベクトルです。
ここでのポイントは、
-
1つの数字ではなく「3つの情報(年齢・身長・体重)」をひとつの単位として扱っている
-
これが“1人分のデータ”という考え方
つまり、
ベクトル=1人分(1つのサンプル)を表す数のまとまり
です。
💡 Pythonで表すとこうなります
出力:
[ 25 170 60]
この1本のベクトル x は、「1人分のデータ行」 に相当します。
-
x[0]→ 年齢 -
x[1]→ 身長 -
x[2]→ 体重
つまり、ベクトルは「個人データを1つの箱にまとめたもの」と考えるとイメージしやすいです。
🔍 ちょっとだけ数学的に言うと…
ベクトルは 方向と大きさ を持つ量(=向きのある数)ですが、データ分析では「特徴量の集まり(feature vector)」として使います。
つまり:
-
物理では「力や速度を表す矢印」
-
統計・機械学習では「1人の特徴を数で表した列」
同じ“ベクトル”でも、使う文脈で意味が少し違うのです。
ここでは後者、「データを扱うためのベクトル」 を扱います。
✅ まとめ
| 観点 | ベクトルの意味 | イメージ |
|---|---|---|
| 直感的 | 1人分のデータをまとめたもの | プロフィールを1行で表す |
| 数学的 | 数を順番に並べた構造(列ベクトル) | 数の矢印 |
| データ分析的 | 特徴量の集まり(feature vector) | モデルに渡す1サンプル |
次の章では、この「ベクトル」が複数集まってできる行列(matrix)=“全員分のデータ”
を見ていきましょう。
2. 行列とは?──“全員分のデータ”を表す
3. ベクトルと行列の関係──「点」と「面」
ベクトル=点(矢印)
-
1人分のデータ
は、3次元空間の**1つの点(=矢印の先)**だと思ってOK。
-
年齢・身長・体重の3軸の“座標”です。
行列=点のあつまり(雲/面)
-
複数人のデータを並べた行列
は、たくさんの点の集まり(点群)。
-
似た傾向のデータは“同じ方向”に並ぶ=面っぽい形が見えてきます(これが後で学ぶ「主成分」や「回帰直線/平面」の直感)。
まとめ
ベクトル=1点、行列=点群(面)。
ここから先は「点群に対して変換をかける」と考えると、行列演算が一気に腑に落ちます。
行列の操作が“データ処理”になる
例:身長を cm → m に一括換算(列ごと変換)
データ行列(行=人、列=[年齢, 身長, 体重])を用意:
身長(2列目)だけを100分の1にしたい。
列ごとのスケーリングは、対角行列を右から掛けるだけ:
すると
— 身長の列だけ cm→m に変わりました。
ポイント:右掛け(
Pythonではこう書く(@ は行列積)
出力(見やすく整形):
[[25. 1.7 60. ]
[30. 1.8 70. ]
[22. 1.6 50. ]]
なぜ右から?
行列の列は「変数(項目)」だから。右掛けで列ごとに独立の比率をかけられます(左掛けは行=“人”の操作)。
変換のバリエーション(実務で超よく使う)
-
平行移動(中心化):各列から平均を引く
は列平均)
→ 回帰・PCAの前処理の定番 -
標準化:列ごとに
→ スケールを揃え、距離・学習を安定化 -
回転・射影:直交行列
や基底
を右掛け
→ PCAでの次元圧縮や特徴抽出の本体 -
線形モデルの予測:
→ 重みベクトルとの積で一括予測
合言葉:「行列×(右掛け)=列方向の一括変換」。
これが“データ処理=行列操作”という発想のコアです。
超要約
-
ベクトル=1人分の点、行列=点群(面)。
-
列単位の処理(単位換算・標準化・特徴抽出)は右から対角/基底行列を掛けるだけ。
-
ほぼすべての前処理・PCA・回帰・ニューラルネットは、この拡張版だと思えばOK。
4. 行列は“データ変換の装置”
行列を掛ける=線形変換(回転・拡大・縮小・射影)
データ行列 (行=サンプル、列=特徴)に行列を掛けると、座標軸を入れ替えたり、伸ばしたり、向きを変えたりできます。
これが「線形変換」。イメージは透明なフィルターを通す感じです。
-
右から掛ける
… 列(特徴量)方向の変換
-
例:単位換算、標準化、特徴の再合成、次元圧縮(PCAの射影)
-
-
左から掛ける
… 行(サンプル)方向の変換
-
例:サンプルの加重平均、バッチ結合など(実務では右掛けが主役になりがち)
-
具体例①:スケーリング(単位換算・重みづけ)
身長だけ cm→m に換算したい(列ごとに比率を掛ける):
→ 右掛け=列操作なので、2列目(身長)だけが 1/100 になります。
具体例②:回転(座標軸の入れ替え・混ぜ合わせ)
2次元の点群 を角度
回す回転行列:
→ 形は保ったまま向きだけ変える(距離・角度は保たれる)。
PCAで「より説明力のある向きに回す」直感に近いです。
具体例③:射影(次元圧縮=“影”を落とす)
高次元のデータを、低次元の「意味のある軸」に**落とす(写す)**操作。
列正規直交な基底行列 (列数=新しい次元)を使って:
-
(サンプル数
、元の次元
)
-
(取り出したい次元
の基底)
-
(圧縮後の表現)
PCAでは、ばらつきが最大になる方向(主成分ベクトル)を列にもつ
を使い、 で情報を保ったまま次元を小さくします。
具体例④:標準化(スケールを揃えて学習を安定)
各列の平均を0、分散を1に:
-
平行移動(中心化)→ 引き算は行列の和で表せる
-
列スケールの統一 → 右から対角行列を掛ける
距離計算・回帰・クラスタリングが安定&公平になります。
具体例⑤:機械学習の「1層」は行列積
ニューラルネット(全結合層)の基本式:
-
:重み(特徴の混ぜ合わせ=新しい表現を作る)
-
:バイアス(平行移動)
- :非線形(ReLUやSigmoidなど)
→ 行列積がコア。学習でを更新し、「欲しい出力が出る変換」をデータから見つけます。
ミニコード:PCA風の射影(概念デモ)
出力:
[[ 2.84492057 -0.37940977]
[-12.11473302 -0.97623555]
[ 17.26523103 -0.07376421]
[ -6.87648814 1.3676765 ]
[ -1.11893043 0.06173304]]
ポイント:
-
中心化 → 共分散 → 固有分解 → 射影がPCAの心臓部
-
まさに「
に行列
を右掛けして、良い向きに並び替える」
「なるほど、コードで変換するとこうなるのか!」と思った方は、実際に自分のデータで試してみるのがいちばん理解が早いです。
TechAcademyの講座なら、NumPyを使ったベクトル・行列演算を初心者でも手を動かしながら学べます。
👉 テックアカデミー
で講座内容を見てみる
一言まとめ
-
行列は“データ変換の装置”。右掛けで**列(特徴)**をまとめて変換。
-
スケーリング・回転・射影・標準化・ニューラルネットの重み付け……
すべてが「行列を掛ける=フィルターを通す」の応用。 -
PCAもNNも、根っこは同じ直感で捉えられます。
合言葉:行列×=特徴をまとめて加工するフィルター。
これがわかると、数式が“処理の設計図”に見えてきます。
📘 さらに学びたい方へ
ベクトルや行列は、統計・機械学習・AIのすべての基礎。
「理屈だけでなく、手を動かして身につけたい」という方は、TechAcademy|Pythonで学ぶ統計学・データ分析講座で体系的に学ぶのがおすすめです。
確率・分布・推定・検定などの基礎から、NumPy・Pandas・可視化まで。
実際にコードを書きながら「データサイエンスの土台」を作れます。
👉 今すぐTechAcademyで学習内容をチェックする
コメント