アルバイト募集2017-06-23配列の軸の順番を入れ替えるNumPyのtranspose関数の使い方Tweet軸のデータを入れ替えるとはどういうことかtransposenumpy.ndarray.transposeparams:returns:numpy.transposeparams:returns:numpy.ndarray.TNumPyの多次元配列ndarrayは、データ入れ替えの操作も豊富にあります。transpose関数はそのうちの1つで、転置をするときや、軸のデータの順番を入れ替えるときに役に立ちます。この記事では、transpose関数に焦点を当てて使い方を解説します。軸のデータを入れ替えるとはどういうことか多次元配列の軸と聞いて、何のことなんだろうと思った方もいるかもしれません。4)のように表記します。4)と表記して第0軸が3、第1軸が4となります。使用する転置の例で説明しましょう。転置はこの軸(axis)を入れ替えることに相当します。1次元のベクトルで考えてみます。行ベクトルを転置すると列ベクトル、列ベクトルを転置すると行ベクトルになります。いう添え字をつけることで元のものから転置したものであることを示します。b_n)\しかしながらNumPyでは、n次元ベクトルが行ベクトルであるか列ベクトルであるかの区別はしません。ベクトルをtranspose関数で転置しても何も変わりません。2次元配列以降からtranspose関数を使うことで中身が変わります。このとき、次のように行と列が反転します。行と列を入れ替えることは、0軸と1軸を入れ替えることと同義です。その場合、次のような変換がなされます。i)3次元にした場合も同様に、0軸と1軸を入れ替えた場合、次のような変換になります。k)transposeこのような転置を行う関数は3通りあり、numpy.transpose、numpy.ndarray.transposeとnumpy.ndarray.Tとがあります。numpy.ndarray.transposenumpy.ndarray.transposeのAPIドキュメントは以下の通りです。(省略可能)転置を行なった後の軸(axis)の入れ替え方を指定します。何も指定しなければ軸の順番が逆になった配列を返します。returns:指定された軸の入れ替え(転置)を行なった配列(ndarray)が返されます。先程見たように1次元配列に対しては何も変化を及ぼしません。これは他の2つの関数についても同じことが言えます。引数のaxesには、軸をどのように入れ替えるかを指定します。0)と指定してください。2次元配列からtransposeの使用例を確認します。何も引数を指定せずに転置。軸の順番を指定して見る。これは軸の順番を逆にしただけなので直前の操作の結果と同じ配列が返ってくる。タプルを指定することができます。元の順番のまま軸を指定すると配列に変化はない。11]])1次元配列について見てみます。見た目がほとんど同じでもreshapeで形状変換することで転置を行うことは可能です。今度は1次元配列を転置してみる。ここでbの`shape`を確認。軸が1つしかないことがわかる。このように軸を2つに指定してやると転置ができるようになる。[5]])次は3次元配列について見ていきます。4×3×2の3次元配列。2の要素数が2となっている。引数を何も指定しないと軸の順番が逆になった(2,1,0)の配列を返す。軸の順番を指定してみる。23]]])numpy.transpose次はnumpy.transposeの方を見ていきましょう。基本的な使い方はnumpy.ndarray.transposeとほぼ同じです。引数に転置したい配列(ndarray)を指定すること以外は何も変更はありません。APIドキュメントは以下の通りです。転置したい配列をここで指定します。(省略可能)初期値None転置する際の軸の順番を指定します。returns:転置されたあとの配列(ndarray)が返されます。ほとんど同じですが、こちらも使用方法を確認してみます。三次元配列のcを再び転置して見る。