非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

【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]]
 

 




スポンサーリンク

 - Python