Python NumPy / ndarray のメソッド #5

株式会社リュディアです。今回も NumPy についてまとめていきます。

前回までの NumPy / ndarray のメソッドについてのまとめへのリンクは以下を参考にしてください。

以下のリンクの内容を元にまとめを作っていきます。

今回も Shape manipulation に分類されるメソッドのまとめです。今回は transpose(), swapaxes() です。

では transpose() から見てみます。数学の世界で transpose は転置を意味します。では早速コードを見ていきましょう。

import numpy as np

x = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], np.int32)
print(x)

x.resize(3, 4)
print(x)
print(x.transpose())

#
# [ 1  2  3  4  5  6  7  8  9 10 11 12]
#
# [[ 1  2  3  4] 
#  [ 5  6  7  8] 
#  [ 9 10 11 12]]
#
# [[ 1  5  9]    
#  [ 2  6 10]    
#  [ 3  7 11]    
#  [ 4  8 12]]
#

まず要素数 12 の1行ベクトル x を用意し resize(3, 4 ) で 3行4列の行列に変形します。次に x.transpose() で転置を実行しています。出力結果から行と列が入れ替わっている、つまり転置が行われていることが確認できますね。

ちなみにこの例では x.T でも同じ結果が得られます。x.transpose() はいろいろな引数をとるのですが、2次元配列で行と列を入れ替える基本動作を T と定義しています。

次は swapaxes() です。axes は軸という意味なので swap axes は軸を入れ替えるという意味ですね。まず以下の例をみてください。

import numpy as np

x = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], np.int32)
print(x)

x.resize(3, 4)
print(x)
print(x.swapaxes(0, 1))

#
# [ 1  2  3  4  5  6  7  8  9 10 11 12]
#
# [[ 1  2  3  4]
#  [ 5  6  7  8]
#  [ 9 10 11 12]]
#
# [[ 1  5  9]
#  [ 2  6 10]
#  [ 3  7 11]
#  [ 4  8 12]]
#

ndarray x に対して軸 0 と軸 1 を入れ替える指定を表しています。2次元行列なので軸 0 と軸 1は縦、横になるので結果として転置と同じことになります。転置されていることがわかりますね。

先に説明した transpose はあくまで転置であり、swapaxes は軸の入替なので3次元以上の行列を扱う場合に汎用的な操作が可能になります。

NumPy / ndarray のメソッドに関するまとめの続きは以下からどうぞ。

では、ごきげんよう。



この記事が気に入ったらサポートをしてみませんか?