本稿は Python の NumPy に関する記事です。
子ページを選択してください。
本ページの子ページ
- 配列の作成 —
np.arrayから始める基本 - 多次元配列の作成 — 2D・3D 配列の生成
- 要素の参照 — インデキシング
- 要素の追加 —
np.append - 要素の更新 — 値の差し替え
- 要素の削除 —
np.delete - ブロードキャスト — 形が異なる配列同士の演算
- 多次元配列の構造の確認 —
shape/ndim - 多次元配列を 1 次元配列に変換 —
flatten/ravel - 1 次元配列を多次元配列に変換 —
reshape - 要素の範囲指定 — スライス
- 平均値の算出 —
np.mean - 行列を結合する方法 —
concatenate/stack
NumPyとは?
NumPy (Numerical Python) は、Python で科学計算・機械学習を行うときに事実上必須となる外部ライブラリです。中心となるのは ndarray (N 次元配列) オブジェクトで、Python の標準リストに比べて桁違いに高速に多次元数値計算を行えます。
pandas / scikit-learn / TensorFlow / PyTorch / OpenCV など、主要なデータ系ライブラリの内部でも NumPy が広く利用されており、Python のデータ分析エコシステムの土台になっています。
NumPyの主な特徴
- 高速な配列演算 — ループを書かずにベクトル化で表現 (内部は C で実装)
- 多次元配列 — 1D / 2D / 3D 以上を統一的に扱う
- ブロードキャスト — 形が違う配列同士でも自動で要素演算
- 豊富な数学関数 — 三角関数、指数、対数、統計量、線形代数、FFT 等
- 線形代数 — 行列積、逆行列、固有値、SVD など (
numpy.linalg) - 乱数 — 様々な分布から乱数生成 (
numpy.random) - 他ライブラリとの相互運用 — pandas / scikit-learn / matplotlib との連携が標準
インストールと基本
|
pip install numpy |
|
import numpy as np |
標準リストとの違い
| 項目 | Python list | NumPy ndarray |
|---|---|---|
| 要素型 | 異種混在 OK | 同一型 (dtype) |
| 速度 | 遅い (Pythonループ) | 速い (ベクトル化) |
| メモリ | 多い | 連続領域でコンパクト |
| 多次元 | list の list で表現 | 真の多次元配列 |
| 演算 | 逐次でループ | 要素ごとに一括で計算 |
よく使う関数
| 分類 | 関数 |
|---|---|
| 生成 | np.array、np.zeros、np.ones、np.arange、np.linspace、np.eye |
| 形状操作 | reshape、flatten、ravel、transpose、concatenate、stack |
| 統計 | mean、std、var、median、min、max、sum |
| 線形代数 | np.dot、np.linalg.inv、np.linalg.solve、np.linalg.eig |
| 乱数 | np.random.rand、np.random.randn、np.random.choice |
| 条件 | np.where、np.any、np.all、np.isnan |
注意点
- dtype の違い:
int64とfloat64で精度・メモリが異なる。意図しない型変換に注意 - 巨大配列はメモリを大量に消費。
nbytesで見積もる - ループは禁物:
for i in range(N):ではなくベクトル化/ブロードキャストで書く - NumPy が遅いと感じたら、scipy・numba・Cython・GPU (CuPy)・PyTorch などへの移行も検討
- ファイル入出力は
np.save/np.load(バイナリ) やnp.savetxt/np.loadtxt(テキスト)
関連
- 親カテゴリ: 外部ライブラリ (Python)
- Python本体: Python
- 類似/関連: pandas、scikit-learn、matplotlib、SciPy
子ページ
同階層のページ
- NumPy
- Matplotlib
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Git pushした変更の取消し|revert・履歴変更と保護の注意点 2026-10-15 23:49:01
- Gitでローカルを戻す前に|reset・restoreの違いと退避範囲 2026-10-15 23:49:01
- Git rebaseの使い方|対象範囲・競合解決・pushの判断 2026-10-15 22:50:59
- Git pullの使い方|取込み先・ff-only・競合とstashの注意点 2026-10-15 22:50:59
- Git pushの使い方|送信先・タグ・force-with-leaseの条件 2026-10-15 22:12:47
- Git remoteの設定・確認・削除|SSH URLとfetch/pushの違い 2026-10-15 22:12:47
- Gitリモートリポジトリの作成|初回push・既存履歴・mirrorの注意 2026-10-15 15:48:16
- Gitのuser.name・user.email設定|local/global・確認と過去履歴の注意 2026-10-15 15:30:07
- LinuxにGitをインストール|配布元・初期設定・TLSと認証の確認 2026-10-15 15:30:06
- Git導入と初回push|Linuxサーバー・Windows/macOS・SSH設定 2026-10-15 14:51:54
- Db2のCREATE INDEX|索引定義・INCLUDEと実行計画の確認 2026-10-15 14:10:22
- Db2の自動採番|IDENTITY・ID取得とRESTARTの注意点 2026-10-15 14:10:22
- 【DB2】特定スキーマの全テーブルの全カラム情報を取得する方法 2026-10-15 13:53:15
- Db2のシーケンスとIDENTITYの違い|採番とカタログの確認SQL 2026-10-15 13:53:15
- Db2で複数カラムをUPDATEする方法|SET・WHEREと更新前の値 2026-10-15 13:53:15