Python 配列の形状や大きさの変更
形状の変更
配列の形状を変更したい場合はnp.reshape関数か、配列のreshapeメソッドを使用する。これらが作成する配列はビューである。新しく作る配列の形状を引数に指定する。
配列の次元を拡張したい場合はreshapeメソッドを使う以外にも方法がある。[:, np.newaxis]のように、次元を追加したい位置にnp.newaxisを記述してスライシングを行う。
配列の結合
NumPyには配列を結合するための様々な関数が用意されている。それらの中ではvstack関数とhstack関数が便利である。配列を垂直方向に結合する場合はvstack関数を使用する。引数には結合させる配列を要素にしたシーケンスを指定する。一方のhstack関数は配列を水平方向に結合する。hstack関数で1次元配列同士を結合させると1次元配列が返される。
vstack関数とhstack関数のほかには、これらの関数を一般化したようなstack関数やconcatenate関数がある。
垂直方向と水平方向の結合を繰り返す場合にはblock関数を使う。この関数は数学のブロック行列のように複数の配列を結合する。block関数はvstack関数とhstack関数の代わりとしても使える。
繰り返しパターンの配列
tile関数は指定の配列をブロックとし、それを指定回数繰り返し並べた配列を作成する。第1引数には元になる配列、第2引数には整数型かシーケンス型で各次元への繰り返し回数を指定する。
配列の要素ごとに繰り返した配列を作成するにはrepeat関数を使う。tile関数と同様に第1引数には元になる配列、第2引数には繰り返し回数を指定する。デフォルトでは配列の要素を指定回数繰り返した1次元配列が作成される。axis引数を指定すれば、指定の軸方向に各要素を繰り返すことができる。
軸の並べ替え
配列の軸を並べ替え、行と列が反転した配列などを作ることができる。配列の軸の順序を反転する操作のことを転置と呼ぶ。2次元配列を転置すると、単純に行と列が反転した配列になる。transpose関数を使うか、配列のT属性を参照することで転置された配列を取得できる。この転置された配列は下の配列のビューである。
多次元配列の任意の軸を交換するにはswapaxesメソッドを使う。
https://colab.research.google.com/drive/1kMeRWVuK63TBDNiTm5MjH-pyeYhTqEZm?usp=sharing
この記事が気に入ったらサポートをしてみませんか?