経済統計の使い方
統計初心者の社会人向けに、経済データの解説をしています。「まとめページ」をご覧くだされば、全体的な内容がわかると思います。
python

【python】多次元配列(ndarray)の概要

ndarryについての説明

numpyの中心的なツールであるndarrayについて解説します。

arrayの位置づけ、作り方などをわかりやすく説明します。

経済統計の使い方では、統計データの入手法から分析法まで解説しています。

【python】pythonのまとめ 経済統計の使い方では、統計データの入手法から分析法まで解説しています。 https://officekaisuiyoku.com...

多次元配列とは

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で使う多次元配列です。最初だけnumpyimportしておく必要があります。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次元array2次元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’)という結果でした。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA