【Python】NumPyの「-1:」は混乱しやすいので実例でまとめ
Numpyでa[-1:]のような書き方は、NumPyやPythonのリスト操作においてスライス(:)を使った特殊な方法の一つです。これを簡単に解説すると、「末尾の要素からスタートして、最後までを取得する」という意味になります。混乱しやすいので頭の整理のため書き留めます。
基本の説明
- a[-1] aの末尾の1要素だけを取得します。このとき返されるのは値そのもの(スカラー)。
- a[-1:] aの末尾の要素から「スライス」を開始し、最後までを取得します。このとき返されるのは配列(1次元の形を持つ)。
基本例
import numpy as np # 配列を作成 a = np.array([1, 2, 3, 4, 5]) # a[-1]とa[-1:]の違い print(a[-1]) # 出力: 5 (単一の値) print(a[-1:]) # 出力: [5] (配列の形状を保つ) print(a[-2:]) # 出力: [4, 5]
2次元配列だとどうなるか?
2次元配列の場合は最後の行全体をスライスとして取得します。
import numpy as np a = np.array([[1, 2, 3], [4, 5, 6]]) print(a[-1:]) # 出力: [[4 5 6]] b = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) print(b[-1:]) # 出力: [[7 8 9]]
2次元配列応用例 [-1:, [1,2]]
最後の行から2列目と3列目の要素を取得します。
import numpy as np a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) print(a[-1:, [1,2]]) # 出力: [[8 9]]
スポンサーリンク