ndarrayのプロパティーの調べ方 変更方法

主なプロパティー(その1)
ndim次元数
shape各次元のサイズのタプル
size要素数
# リストから2次元配列作成
import numpy as np
data2 = np.array([[1, 2, 3], [4, 5, 6]])
data2

array([[1, 2, 3],
   [4, 5, 6]])

# 次元数(次元の軸の数、ベクトル→1、行列→2)
data2.ndim

2

# 各次元のサイズのタプル(2次元なら、行数と列数)
data2.shape

(2, 3)

# 要素数
data2.size

6

# shapeは、reshape で変更できます
# 要素数が同じでないといけません
# 2×3の2次元配列から1次元の新しい配列を作成(data2はそのまま)
data2_reshape_6 = data2.reshape(6)
data2_reshape_6

array([1, 2, 3, 4, 5, 6])

# 2×3から3×2の新しい配列を作成(data2はそのまま)
data2_reshape_32 = data2.reshape((3, 2))
data2_reshape_32

array([[1, 2],
[3, 4],
[5, 6]])

主なプロパティー(その2)
T転置
itemsize1要素のサイズ(バイト)
nbytes多次元配列全体のサイズ(バイト)
# リストから2次元配列作成
import numpy as np
data2 = np.array([[1, 2, 3], [4, 5, 6]])
data2

array([[1, 2, 3],
    [4, 5, 6]])

# 転置(行と列を入れ替えた多次元配列)
data2.T

array([[1, 4],
    [2, 5],
    [3, 6]])

# リストから3次元配列作成
data3 = np.array([[[1, 2, 3], [4, 5, 6]], [[11, 12, 13], [14, 15, 16]]])
data3
array([[[ 1,  2,  3],
        [ 4,  5,  6]],

       [[11, 12, 13],
        [14, 15, 16]]])
# 3次元配列の転置
#  0軸と2軸を入れ替え
data3.T
array([[[ 1, 11],
        [ 4, 14]],

       [[ 2, 12],
        [ 5, 15]],

       [[ 3, 13],
        [ 6, 16]]])
# 各次元のサイズのタプル
data3.shape
(2, 2, 3)
# 各次元のサイズのタプル
data3.T.shape
(3, 2, 2)
# 1要素のサイズ(バイト)
data2.itemsize

# 配列全体のサイズ(バイト)
data2.nbytes

48

# data2.nbytes と data2.itemsize * data2.size は等しい
data2.itemsize * data2.size
48

n次元配列をn次元空間に配置したときに、各次元の数値が変わる方向がその次元の軸(axis)になります。
各軸は、順番に0軸、1軸、2軸、…と呼びます。

numpy.ndarray.Tは、多次元配列の転置になります。
Tプロパティーもよく使われます。

2次元の場合は、行(0軸)と列(1軸)を入れ替えます。
3次元の場合は、0軸と2軸を入れ替えます。

コメント

タイトルとURLをコピーしました