🔢 PythonでNumPyを使えるようになると世界が広がる
Pythonでデータ分析や機械学習、画像処理を始めようとすると、必ず登場するのが NumPy(ナンパイ) です。NumPyは「高速な数値計算」と「多次元配列の操作」を得意とするライブラリで、機械学習や科学計算、データ分析の現場でほぼ必須のツールになっています。
NumPyを使いこなせるようになると、何千・何万件ものデータを一気に計算できたり、画像加工や統計処理がシンプルなコードで書けるようになります。今回は動画の内容をベースに、NumPyの基本から配列演算、変形・結合、便利な関数までをまとめて整理しました。✨
📦 NumPyとは?まずはインストールとインポートから
NumPyは、数学で使われるような関数や高次元の配列をPythonから簡単に扱えるようにしてくれるライブラリです。機械学習・科学計算・データ分析の分野では、ほぼ標準のように使われます。
使うには事前にインストールが必要です。pip install numpy でインストールしたら、コードの先頭で次のように書くのが慣習になっています。
import numpy as np
np という別名でインポートするのがお作法。NumPyの記事やサンプルコードを見ると、ほぼすべてがこの形になっています。
🧮 NumPyの主役「ndarray」とは
NumPyの中心にあるのが ndarray(n-dimensional array) と呼ばれる独自の配列オブジェクトです。Python標準のリストと似ていますが、できることや動きが大きく異なります。
🔍 リストとndarrayの違い
たとえば1次元配列を作るときは、np.array([10, 14, 19]) のようにリストを渡します。一見Pythonのリストと同じに見えますが、決定的な違いは配列同士の演算や行列計算が直感的にできること。
- 📌 Pythonリスト:
[10, 14, 19] * 2はリストが2回繰り返された[10,14,19,10,14,19]になる。 - 📌 NumPy配列:
x * 2はすべての要素に2をかけて[20, 28, 38]になる。
大量データを一気に高速に計算できるため、機械学習や画像処理で重宝されるわけです。⚡
🖼 多次元配列のイメージ
ndarrayは1次元だけでなく、2次元・3次元と高次元の配列も自然に扱えます。2次元配列は「行と列」、3次元配列は「行・列+もう一軸」のイメージです。
身近な例だとカラー画像。1ピクセルごとにRGB(赤・緑・青)の値があり、それが縦横に並んでいるので3次元配列として表現できます。だから画像加工とNumPyは相性抜群なのです。📷
🛠 配列の形を調べる:ndimとshape
作った配列がどんな形をしているのかは、ndarrayの属性から簡単に確認できます。
- 🔢 ndim:配列の次元数を返す(1次元なら1、2次元なら2)。
- 📐 shape:各次元のサイズをタプルで返す(例:2行3列なら
(2, 3))。
「配列の形が分からない…」となったら、まずこの2つを表示してみると一発で構造がつかめます。
🏗 配列の初期化バリエーション
NumPyには、用途に応じて配列を作る関数がいくつも用意されています。
- 0️⃣ np.zeros(shape):すべての要素が0の配列を作る。
- 1️⃣ np.ones(shape):すべての要素が1の配列を作る。
- 🎲 np.random.rand(...):0以上1未満のランダム値で埋めた配列を作る(引数はタプルではなく個別指定)。
- ⚡ np.empty(shape):メモリ上の値をそのまま使うので高速。中身を必ず上書きするときに便利。
➕ 配列を使った計算:四則演算と行列の積
🔣 配列と数値の四則演算
x + 10 や x * 3 のように、配列に対して数値で計算すると、すべての要素にその演算が一気に適用されます。Pythonリストでは map などを使う必要がある処理が、NumPyならたった1行です。
🔁 配列同士の四則演算
同じ形の配列同士なら、同じ位置にある要素同士で計算が行われます。たとえば2行3列の配列を2つ用意して足し算すると、それぞれの位置で要素同士の和が計算された配列が返ってきます。
形が異なる配列でも、特定の条件(ブロードキャスト可能な形)であれば計算できます。1次元配列と2次元配列、N行1列の配列と多次元配列など、ルールを覚えると一気に応用が利きます。
📐 行列の積は np.dot で
普通の * はあくまで「同じ位置の要素同士の掛け算」。数学でいう行列の積(内積)を計算したい場合は np.dot(x, y) を使います。1つ目の配列の列数と、2つ目の配列の行数が一致している必要がある、というルールも押さえておきましょう。
🔄 配列の変形と結合
🧩 reshape と flatten
reshape を使うと、要素はそのままで配列の形を変えられます。たとえば2行3列を3行2列に変形したり、3次元を2次元に潰したり。flatten を使えば、どんな形の配列も一気に1次元配列に変換できます。
ただし、変形後の総要素数は変える前と同じである必要があります。ここを間違えるとエラーになるので注意です。⚠️
🔗 concatenate で配列を結合
2つ以上の配列をつなげるには np.concatenate が便利。第1引数に配列のリスト、第2引数に「どの軸で結合するか」を指定します。
- 📏 axis=0:行方向(縦)に結合(下にくっつくイメージ)。
- 📏 axis=1:列方向(横)に結合(右にくっつくイメージ)。
🎯 インデックスでの要素アクセス
配列の要素にアクセスするときは、Pythonのリストと同様に角括弧を使います。多次元配列の場合は x[行, 列] のようにカンマ区切りで指定。x[0, :] のようにコロンを使えば「その次元すべて」を意味し、行や列を一気に取り出せます。
📊 統計・数学関数も充実
NumPyには、データ分析や数学計算で頻出の関数がそろっています。引数にリストやndarrayを渡すだけで、複雑な処理がワンライナーで終わります。
- 📈 np.max / np.min:最大値・最小値
- ➗ np.sum / np.prod:合計・積
- 📊 np.mean / np.median:平均・中央値
- 📉 np.std / np.var:標準偏差・分散
- 🧮 np.log / np.sqrt / np.sin / np.cos / np.tan / np.pi:対数・平方根・三角関数・円周率
すべて暗記する必要はありません。「こういう統計値や数学関数はだいたい揃っている」と知っておくだけで、必要なときに調べて使える力になります。🔍
📚 NumPyを体系的に学ぶおすすめ書籍
動画やブログで触りはつかめても、機械学習・データ分析の現場で使いこなすには、書籍で体系的に学ぶのが一番の近道です。NumPyだけでなく、Pandasや機械学習との組み合わせまで一気に押さえれば、プロジェクトでそのまま戦力になります。📈
🐍 Pythonデータ分析の決定版
NumPyとPandasを軸に、データの読み込み・前処理・可視化・分析までを網羅。NumPyの作者自身が著者という、現場で長く愛されている定番書です。
🤖 機械学習につなげたい人へ
NumPyの行列演算がなぜ機械学習で重要なのかを、scikit-learnの実装と一緒に学べる一冊。配列計算が「実際にどう使われるか」が腹落ちします。
🧠 ディープラーニングの数学的土台を固める
NumPyだけで実装しながらニューラルネットワークの仕組みを学ぶ名著。配列計算と行列の積が「なぜ必要か」を、手を動かしながら体感できます。
📐 数値計算と科学技術計算を本格的に
NumPy・SciPyを使った科学計算をしっかり学びたい人向け。シミュレーションや高度な数値解析にも踏み込めるようになります。
🚀 Pythonの基礎から固め直したい人へ
NumPyを学ぶ前段階として、Pythonの文法・関数・クラス設計を整えておきたい人にぴったり。基礎がしっかりしていると、ライブラリの理解スピードが段違いです。
❓ よくある質問(FAQ)
🐍 Q1. NumPyとPython標準のリスト、どちらを使うべき?
大量の数値データを扱う・行列計算をしたい場合はNumPyが圧倒的に高速で便利です。一方、要素数が少なく、種類の異なるデータをまとめたいだけならPython標準のリストで十分です。用途に応じて使い分けましょう。
🖼 Q2. 3次元配列って具体的にどんな場面で使う?
代表例はカラー画像です。縦×横の各ピクセルにRGBの3つの値があるため、自然に3次元配列として表現されます。画像処理や畳み込みニューラルネットワーク(CNN)でよく登場します。
📐 Q3. 行列の積と要素ごとの掛け算(*)の違いは?
* は同じ位置の要素同士を掛け算する「アダマール積」。np.dot は数学の行列の積(内積)を計算します。次元やサイズの条件、結果の形が異なるので、目的に応じて使い分ける必要があります。
🔢 Q4. 行列計算がよく分からなくても大丈夫?
大丈夫です。最初は「配列まるごとに対して計算ができる便利なやつ」くらいの理解でOK。機械学習や統計を本格的にやる段階で、必要な数学だけ書籍で補強していけば十分追いつけます。
🛠 Q5. NumPyの関数を全部覚えるべき?
覚える必要はありません。np.max np.mean np.std といったよく使うものだけ把握しておき、「こういう処理あったはず」と思ったときに公式ドキュメントを検索するスタイルで十分です。実務でもみんなそうしています。
✨ まとめ:NumPyはPythonデータ活用の入口
NumPyは、Pythonで数値計算・データ分析・機械学習・画像処理をやるうえで避けて通れないライブラリです。ndarrayの作り方、配列の形の確認、四則演算と行列の積、変形と結合、便利関数。この5つを押さえれば、ほとんどのライブラリのチュートリアルがスラスラ読めるようになります。📚
単体で使うというより、Pandasやscikit-learn、PyTorchなどと組み合わせて使う場面がほとんど。今回紹介した書籍を相棒に、ぜひあなたのデータ活用スキルをひとつ上のステージに引き上げてください。🚀
























































コメント