Python NumPy 多次元配列のスライシング #6

株式会社リュディアです。引き続き NumPy ndarray 多次元配列のスライシングについてまとめていきたいと思います。

前回までの NumPy ndarray 多次元配列のスライシング のまとめへのリンクは以下を参考にしてください。

今回は2次元配列のステップを負の値で指定したスライシングについてまとめます。さっそく以下のコードを見てください。

import numpy as np

np_2d = np.arange(20).reshape(4,5)
print(np_2d)

print(np_2d[::-1])

#
# [[ 0  1  2  3  4]
#  [ 5  6  7  8  9]
#  [10 11 12 13 14]
#  [15 16 17 18 19]]
#
# [[15 16 17 18 19]
#  [10 11 12 13 14]
#  [ 5  6  7  8  9]
#  [ 0  1  2  3  4]]
#

何が起こっていますか?行単位で逆順に表示されていることがわかりますね。では次の例はどうでしょうか?

import numpy as np

np_2d = np.arange(20).reshape(4,5)
print(np_2d)

print(np_2d[::, ::-1])

#
# [[ 0  1  2  3  4]
#  [ 5  6  7  8  9]
#  [10 11 12 13 14]
#  [15 16 17 18 19]]
#
# [[ 4  3  2  1  0]
#  [ 9  8  7  6  5]
#  [14 13 12 11 10]
#  [19 18 17 16 15]]
#

今度は列単位で逆順に表示されていることがわかりますね。では最後の例です。行、列の双方で負のステップを指定してみます。

import numpy as np

np_2d = np.arange(20).reshape(4,5)
print(np_2d)

print(np_2d[::-1, ::-1])

#
# [[ 0  1  2  3  4]
#  [ 5  6  7  8  9]
#  [10 11 12 13 14]
#  [15 16 17 18 19]]
#
# [[19 18 17 16 15]
#  [14 13 12 11 10]
#  [ 9  8  7  6  5]
#  [ 4  3  2  1  0]]
#

行も列も逆順に表示されていることがわかりますね。NumPy のスライシングについていったんこれで終了とします。

では、ごきげんよう。


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