NumPyによる配列の形状変換、連結、分割
形状変換
データの生成
np.linspaceは(開始点、終了点、要素数)な配列が得られるので、(0,5,6)の場合、上記のようになる。
reshapeによる変換
reshapeで任意の形状に変換できる。ここでは、3行2列の形状に変換した。もとの形状から変えられる形状以外はエラーになるので、(3,3)とかにはできない。
行ベクトル
reshapeで配列をベクトルに変換できる。reshape((1,6))で行ベクトルが得られる。
列ベクトル
reshape((6,1))で列べクトルが得られる。
np.newaxisによるベクトルへの変換
行ベクトル
np.newaxisで配列に新しい次元を追加することができる。上記のreshapeで(1,6) としたときと同じベクトルが得られる。
列ベクトル
上記のreshapeで(6,1) としたときと同じベクトルが得られる。
配列の連結
データの生成
a,bはそれぞれ、以下のようになる。
cは
dは
np.concatenateによる配列の連結
np.concatenateで配列を連結して一つの配列にできる。2つ以上の配列の連結も可能。
2次元配列の連結
2次元配列も1次元配列と同様に連結できる。
連結する軸の変更
axis=1とすることで、連結する部分を変えることができる。
np.vstackによる連結
np.vstackは垂直方向に配列を連結できる。
np.hstackによる連結
np.hstackは、配列を水平方向に連結することができ、np.concatenateでaxis=1としたときと同じ結果が得られる。
配列の分割
データの生成
xは、
yは
splitによる分割
np.split(x,[3,7])は配列を3個目と7個目で分割するという意味。
そのたえため、返り値としては、x1,x2,x3の3個の配列が返ってくる。
np.vsplitによる分割
vsplitは垂直方向で分離するので、np.vsplit(y,[2])でyの2行目で分離される。
np.hsplitによる分割
hsplitは水平方向で分離するので、np.hsplit(y,[1])でyの1列目で分離される。
参考
Pythonデータサイエンスハンドブック ―Jupyter、NumPy、pandas、Matplotlib、scikit-learnを使ったデータ分析、機械学習
コメント