注目キーワード
  1. Python
  2. コンペ

NumPyとは何か?配列操作と数値計算の基本を初心者向けに解説

  • 2026年6月1日
  • 2026年6月1日
  • Python
  • 5回
  • 0件

NumPyとは何か

NumPy(ナンパイ)は、Pythonで数値計算を行うためのライブラリです。

多次元配列を効率よく扱う機能を中心に、数学関数、統計処理、線形代数など幅広い演算をサポートしています。データ分析や機械学習の多くのライブラリ(pandas、scikit-learn、TensorFlowなど)が、内部でNumPyの配列を前提として動いています。

Pythonの標準リストでも数値を扱えますが、NumPyの配列(ndarray)はループなしで一括演算ができるため、大量データの処理が速くなります。

Pythonの基礎やデータ分析全般については Pythonとは?初心者向けにわかりやすく解説 にまとめています。pandasとの違いについては後述します。

NumPyのインストールとインポート

インストール方法

NumPyはpipでインストールします。

pip install numpy

Anacondaを使っている場合は標準で含まれているため、インストール不要なことが多いです。

インポートの書き方

慣例として np という別名でインポートします。

import numpy as np

この記法はNumPyを使うほぼすべてのコードで共通しています。np という別名を使うことで、コードが短く書けます。

numpy arrayの基本:1次元配列を作る

NumPyの配列は np.array() で作成します。

Pythonのリストを渡すだけで配列に変換できます。

import numpy as np

a = np.array([10, 20, 30, 40, 50])
print(a)
print(type(a))
[10 20 30 40 50]
<class 'numpy.ndarray'>

ndarray はNumPyの配列型の名前です。Pythonのリストとは異なり、すべての要素が同じデータ型(整数、浮動小数点数など)になります。

配列同士の演算

NumPyの配列は、ループなしで要素ごとの演算ができます。

import numpy as np

a = np.array([1, 2, 3, 4, 5])
b = np.array([10, 20, 30, 40, 50])

print(a + b)
print(a * 2)
[11 22 33 44 55]
[ 2  4  6  8 10]

Pythonのリストで同じ処理をしようとするとfor文が必要ですが、NumPyでは1行で書けます。

numpy 2次元配列の作り方と操作

2次元配列を作る

リストの中にリストを入れると、2次元配列(行列)を作れます。

import numpy as np

matrix = np.array([[1, 2, 3],
                   [4, 5, 6],
                   [7, 8, 9]])

print(matrix)
print(matrix.shape)
[[1 2 3]
 [4 5 6]
 [7 8 9]]
(3, 3)

shape は配列の形(行数、列数)を表します。(3, 3) は3行3列を意味します。

要素の取り出し方

2次元配列の要素は [行番号, 列番号] で取り出します。番号は0から始まります。

import numpy as np

matrix = np.array([[1, 2, 3],
                   [4, 5, 6],
                   [7, 8, 9]])

print(matrix[0, 0])   # 1行目の1列目
print(matrix[1, 2])   # 2行目の3列目
print(matrix[2, :])   # 3行目をすべて取り出す
print(matrix[:, 1])   # 2列目をすべて取り出す
1
6
[7 8 9]
[2 5 8]

matrix[行, 列] の形で指定します。: はすべての要素を意味します。

2次元配列の形を変える(reshape)

reshape() を使うと、配列の形を変えられます。要素数が変わらない範囲であれば自由に変形できます。

import numpy as np

a = np.array([1, 2, 3, 4, 5, 6])
b = a.reshape(2, 3)
print(b)
print(b.shape)
[[1 2 3]
 [4 5 6]]
(2, 3)

よく使う配列の作り方

ゼロや特定の規則で並んだ配列を作る関数があります。

import numpy as np

# ゼロで埋めた配列
zeros = np.zeros((2, 3))
print(zeros)

# 1で埋めた配列
ones = np.ones((3, 3))
print(ones)

# 0から始まる連番
arange = np.arange(0, 10, 2)   # 0から10未満を2ステップで
print(arange)

# 0から1の間を等間隔に5分割
linspace = np.linspace(0, 1, 5)
print(linspace)
[[0. 0. 0.]
 [0. 0. 0.]]
[[1. 1. 1.]
 [1. 1. 1.]
 [1. 1. 1.]]
[0 2 4 6 8]
[0.   0.25 0.5  0.75 1.  ]

np.arange() はPythonの range() に相当します。np.linspace() は区間を均等分割するときに使います。

統計・集計の基本操作

NumPyは配列に対して統計処理を行う関数を持っています。

import numpy as np

data = np.array([4, 7, 2, 9, 1, 5, 8, 3, 6])

print(data.sum())    # 合計
print(data.mean())   # 平均
print(data.max())    # 最大値
print(data.min())    # 最小値
print(data.std())    # 標準偏差
45
5.0
9
1
2.581988897471611

2次元配列では axis を指定することで、行方向・列方向それぞれの集計ができます。

import numpy as np

matrix = np.array([[1, 2, 3],
                   [4, 5, 6]])

print(matrix.sum(axis=0))   # 列方向の合計(各列の和)
print(matrix.sum(axis=1))   # 行方向の合計(各行の和)
[5 7 9]
[ 6 15]

NumPyとpandasの使い分け

NumPyとpandasはどちらもデータ処理に使いますが、用途が異なります。

比較軸NumPypandas
主な用途数値計算・行列演算表形式データの操作・集計
データ構造ndarray(同一型の配列)DataFrame・Series(列ごとに型が違ってよい)
列名・ラベルなしあり
CSVの読み込み苦手得意

pandasはNumPyの上に構築されており、DataFrameの内部ではNumPyの配列が使われています。数値を大量に計算するならNumPy、表形式のデータを扱うならpandasを選ぶのが基本です。

pandasの基本的な使い方は Pythonのpandasとは何か【インストールと基本的な使い方を解説】 で解説しています。

よくあるミスと対処法

ModuleNotFoundError: No module named ‘numpy’

NumPyがインストールされていない環境で import numpy を実行するとこのエラーが出ます。

ModuleNotFoundError: No module named 'numpy'

対処は pip install numpy を実行するだけです。仮想環境を使っている場合は、その環境が有効になっているかを確認してください。

形が合わない(ValueError: operands could not be broadcast)

形が違う配列同士を演算しようとするとエラーになります。

import numpy as np

a = np.array([1, 2, 3])
b = np.array([1, 2])

print(a + b)   # エラー
ValueError: operands could not be broadcast together with shapes (3,) (2,) 

NumPyにはブロードキャストというルールがあり、特定の条件を満たす場合は形が違っても演算できますが、基本は形を揃えることを意識してください。shape で確認する習慣をつけると原因を見つけやすくなります。

インデックスが範囲外(IndexError: index N is out of bounds)

配列の要素数を超えたインデックスを指定するとエラーになります。

import numpy as np

a = np.array([10, 20, 30])
print(a[3])   # 要素は0,1,2の3つなので3はエラー
IndexError: index 3 is out of bounds for axis 0 with size 3

NumPyのインデックスは0始まりです。3要素なら a[0]a[2] が正しい範囲です。

AI時代におけるNumPyの位置づけ

AIがコードを生成してくれる場面でも、NumPyの配列構造を理解していると出力の意図を確認しやすくなります。機械学習モデルへのデータ入力は多くの場合NumPyの配列を前提としており、shapeや型のズレに気づくには基礎の理解が欠かせません。

まとめ

この記事では、NumPyの基本的な使い方を解説しました。

  • import numpy as np でインポートする
  • np.array() でndarrayを作成する
  • 2次元配列は shape で形を確認し、[行, 列] で要素を取り出す
  • reshape() で配列の形を変えられる
  • sum() mean() などで統計処理ができる
  • pandasとは用途が異なり、数値計算・行列演算はNumPyが担う

NumPyは数値計算の土台として位置づけ、pandasや機械学習ライブラリと組み合わせて使うのが基本的な流れです。

Pythonでどこまで学ぶべきか迷っている場合は、AIが普及した時代にプログラミングスクールは必要か? も参考にしてください。

最新情報をチェックしよう!