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

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

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

今回は前回に引き続き列単位のスライシングについてまとめます。前回は Python 標準のリストで行うように 2次元配列を転置して列を行として扱うことで列のスライシングを行う方法をまとめました。実は NumPy では列単位のスライシングを転置することなくそのまま扱えます。さっそくコードをみてみましょう。

import numpy as np

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

print(np_2d[::, 0:2:])

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

どうでしょうか?0列と1列だけスライシングできてますね。他の列でもやってみましょう。

import numpy as np

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

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

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

今度は [1:4] で列を指定しているので 1, 2, 3 の 3つの列のスライシングです。うまくできています。

NumPy ならではのスライシングだと思います。ぜひ、有効利用してください。

Python NumPy 多次元配列のスライシング に関するまとめの続きは以下からどうぞ。

では、ごきげんよう。


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