Python 配列のスライシング #5

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

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

今回は Python で行列を表現することが可能なリストタプルNumPy の ndarray でのスライシングを比較してみます。引き続き一次元配列のみを扱います。

では以下の例を見てください。

import numpy as np

python_list = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
python_tupple = ('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j')
numpy_array = np.array(['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'])

print(python_list)
print(python_tupple)
print(numpy_array)

#
# ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
# ('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j')
# ['a' 'b' 'c' 'd' 'e' 'f' 'g' 'h' 'i' 'j']
#

Python のリスト、タプルと NumPy の ndarray で英語アルファベットの小文字を 10 要素としてもつ一次元配列を定義しています。ではスライシングを行ってみましょう。まずは正のインデクスと正のステップでスライシングしてみます。

import numpy as np

python_list = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
python_tupple = ('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j')
numpy_array = np.array(['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'])

print(python_list[0::1])
print(python_tupple[0::1])
print(numpy_array[0::1])

print(python_list[1::2])
print(python_tupple[1::2])
print(numpy_array[1::2])

#
# ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
# ('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j')
# ['a' 'b' 'c' 'd' 'e' 'f' 'g' 'h' 'i' 'j']
#
# ['b', 'd', 'f', 'h', 'j']
# ('b', 'd', 'f', 'h', 'j')
# ['b' 'd' 'f' 'h' 'j']
#

いずれも同じ指定で同じ出力結果が得られていることを確認してください。次に負のインデクスと負のステップでスライシングしてみましょう。

import numpy as np

python_list = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
python_tupple = ('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j')
numpy_array = np.array(['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'])

print(python_list[-1::-1])
print(python_tupple[-1::-1])
print(numpy_array[-1::-1])

#
# ['j', 'i', 'h', 'g', 'f', 'e', 'd', 'c', 'b', 'a']
# ('j', 'i', 'h', 'g', 'f', 'e', 'd', 'c', 'b', 'a')
# ['j' 'i' 'h' 'g' 'f' 'e' 'd' 'c' 'b' 'a']
#

こちらも同じ指定で同じ出力が得られていますね。

今回は Python のリスト、タプル、NumPy の ndarray で一次元配列を定義し、スライシングの動作を比較してみました。いずれも同じスライシングで同じ結果が得られることを確認しました。

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

では、ごきげんよう。


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