NumPy配列の「形(shape)」「次元(ndim)」は、データ解析や機械学習で必ず登場する基本概念です。
本記事では、初心者が迷わず理解できるよう、shape, ndim, reshape の使い方を解説します。
この記事の対象
shape関数
基本的な型
np.shape(***)
***.shape
shapeの中に配列を入れる方法と、「.shape」として次元を調べる方法があります。
使用例
import numpy as np
b = np.arange(10)
print(b.shape)
#(10,)
上記のプログラムは、配列の次元をshapeを用いて抽出するものになります。arangeで10の要素を作成しています。その結果をshapeで次元数を確認しています。
reshape関数
「reshape()」関数は配列の形状を変更するのに便利な関数です。
使用例
import numpy as np
arr = np.array([1,2,3,4,5,6])
after = arr.reshape(2,3)
print(arr)
print(after)
上記は一次元配列を二次元配列に変更する例です。
結果
[1 2 3 4 5 6]
[[1 2 3]
[4 5 6]]
ndim関数
「ndim」関数は配列の次元を取得する事ができる関数です。
使用例
import numpy as np
arr = np.array([1,2,3,4,5,6])
p_ndim = arr.ndim
print(arr)
print(p_ndim)
上記は配列の次元を取得する例になります。
結果
[1 2 3 4 5 6]
1
応用:flattenで1次元に、列の追加
データ整形や前処理でよく使うテクニックです。
import numpy as np
a = np.arange(12)
print(a.shape) # (12,)
b = a.reshape(3, 4)
print(b.flatten()) # 1次元の配列
new_col = np.array([[100],[200],[300]])
d = np.hstack((b, new_col))
print(d.shape) # (3, 5)
結果
(12,)
[ 0 1 2 3 4 5 6 7 8 9 10 11]
(3, 5)
体験ツール:配列のshapeを即確認
下記フォームで配列を入力すると、shapeがすぐに分かります。