numpyの中心的なツールであるndarrayについて解説します。
arrayの位置づけ、作り方などをわかりやすく説明します。
経済統計の使い方では、統計データの入手法から分析法まで解説しています。

多次元配列とは
ndarrayは多次元配列を表す一つの方法です。n-dimensional array(n次元配列)の略です。配列は、2,3,5,6といった数字の並びのことです。arrayは整列する、配置する、ずらりと並ぶなどの意味です。同じアレイでもalleyは「小道、路地」でこちらの意味ではないです。2次元のアレイは、行列になります。3次元のアレイは行列が積み重なったイメージです。3次元以上はベクトル、行列という具体的な言い方がないため、一般的に多次元配列を表すテンソルを使います。
次元 | 意味 | NumPyでの形状(shape) | 例(中身) |
---|---|---|---|
0次元のarray | スカラー(数値) | () | np.array(3.14) |
1次元のarray | ベクトル | (3,) | np.array([1, 2, 3]) |
2次元のarray | 行列 | (2, 3) | np.array([[1,2,3],[4,5,6]]) |
3次元のarray | テンソル | (2, 2, 2) | np.array([ [ [1, 2],[3, 4]], [ [5, 6],[7, 8]]]) |
4次元のarray | テンソル | (10, 3, 28, 28) | 省略 |
ndarrayの作り方
ndarrayはpandasで使う多次元配列です。最初だけnumpyをimportしておく必要があります。ndarrayを作るにはリスト(数字の集まり)に対して、array関数を使います。
1次元のarray(ベクトル)
1次元の場合はリストを一つだけ入力します。
import numpy as np
a=np.array([1,2,3])
print(a)
出力
[1 2 3]
2次元のarray(行列)
2次元のarrayの場合は、関数の中ではリストのリストを作ります。[[リスト1],[リスト2]]という形です。
a=np.array([[1,2,3],[4,5,6]])
print(a)
出力
[[1 2 3]
[4 5 6]]
3次元のarray(テンソル)
3次元の場合は、[[リスト1],[リスト2],[リスト3]]となりそうですが、これは、3行3列の2次元のarray(行列)になり、3次元arrayにはなりません。
a=np.array([[1,2,3],[4,5,6],[7,8,9]])
print(a)
出力
[[1 2 3]
[4 5 6]
[7 8 9]]
3次元arrayは2次元arrayのリストということなので、[[[リスト1],[リスト2]],[[リスト3],[リスト4]]]となります。
a=np.array([[[1,2,3],[4,5,6]],[[7,8,9],[10,11,12]]])
print(a)
出力
[[[ 1 2 3]
[ 4 5 6]]
[[ 7 8 9]
[10 11 12]]]
4次元以上も一つ前の次元のarrayのリストという形になります。
arrayの中身を調べる
ndarrayかどうかを調べる(type)
そもそもあるオブジェクトがndarrayかどうかを調べるにはtype関数を使います。上の例で使った3次元のndarrayを例に説明します。
a=np.array([[[1,2,3],[4,5,6]],[[7,8,9],[10,11,12]]])
type(a)
出力
numpy.ndarray
ndarrayの次元を調べる(ndim)
ndarrayは1次元からn次元までさまざまな次元がありますが、それを調べるにはndim属性を使います。numpyの関数とする場合は、np.ndim(a)としますが、同じ結果になります。書き方としては属性としたほうが簡潔です。
a.ndim
出力
3
ndarrayの構造を調べる(shape)
ndarrayだとわかった場合、次元の数を調べるにはshape属性を使います。結果は、(3,2,3)といったタプルの形で示されます。後ろ二つは行列の行と列です。2行3列ということです。それが3層に重なっているというイメージになります。numpyの関数とする場合はnp.shape(a)としますが、同じ結果になります。
a.shape
出力
(2, 2, 3)
ndarrayの要素のデータ型を調べる(dtype)
ndarrayを構成する要素がどのようなタイプなのかは、dtype属性を使います。この場合は、nuppy関数のnp.dtype()は使えません。型(int64など)のオブジェクトを作る関数で、機能が違います。
a.dtype
出力
dtype('int64')
このケースでは整数(’int64’)という結果でした。
- 経済学Q&A(2025)その4
- 経済学Q&A(2025)その3
- 経済学Q&A(2025)その2
- 【python】データフレームの中身を知る、追加する(pandas)
- 【python】データフレームの結合(pandas)