本稿は 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・Metasequoiaと用途別の選び方
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Visual Studio「デザイナーを表示できません」エラーの原因と対処 2026-10-28 12:06:00
- SSH 認証に失敗しました。再試行してください の対処 2026-10-28 12:06:00
- SSH2 秘密鍵の読み込みに失敗しました の原因と対処 2026-10-28 12:06:00
- TeraTerm のよくあるエラーと対処法完全ガイド — Connection refused / 2026-10-28 12:06:00
- Visual Studio エラー一覧|コンパイルエラー・警告の確認方法と対処 2026-10-28 11:39:57
- Whitelabel Error Page の原因と消し方|Spring Boot のエラーページ 2026-10-28 11:39:57
- Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法 2026-10-28 11:39:57
- SQL WHERE 句完全ガイド 2026-10-28 11:39:57
- SQL JOIN 完全ガイド (INNER/LEFT/RIGHT/FULL OUTER) 2026-10-28 11:39:57
- tomcat の起動 / 停止ログと catalina.log・catalina.out の違い 2026-10-28 10:24:23
- Tomcat の起動確認方法 5 つ|localhost:8080・ポート・プロセス・ログ 2026-10-28 10:24:23
- Oracle 19c COMMITの使い方: 暗黙コミット・自動確定・応答不明時の確認 2026-10-28 09:59:09
- Oracle 19c DELETE文|削除対象の確認・COMMIT前の判断・ROLLBACKの条件 2026-10-28 09:59:09
- Oracle 19c INSERT文|INSERT ALL・SELECT・RETURNINGとMERGEの使い分け 2026-10-28 09:59:09
- Oracle 19cのトランザクション制御|COMMIT・ROLLBACK・分離レベルと接続設定 2026-10-28 09:59:09