🐻
numpyのスライスについて解説
今回はnumpyのスライスについて解説します。
スライスとは?
スライスは
- 配列データなどから条件に一致する部分を抜き出す
操作です。
PythonのリストやNumPyの配列に対して、[開始:終了:(step数)] といった形でスライスを指定することができます。
コードで使い方を見ていきましょう。
コード
1次元から見ていきます。
・1次元配列のスライス
import numpy as np
# 1次元配列
arr1 = np.array([0, 1, 2, 3, 4, 5])
# インデックス1から3までの要素を取得
after_slice1 = arr1[1:4]
print("Slice 1:", after_slice1) # 出力: Slice 1: [1 2 3]
# インデックス2から最後までの要素を取得
after_slice2 = arr1[2:]
print("Slice 2:", after_slice2) # 出力: Slice 2: [2 3 4 5]
# インデックス0から最後まで、2ステップで要素を取得
after_slice3 = arr1[::2]
print("Slice 3:", after_slice3) # 出力: Slice 5: [0 2 4]
出力
Slice 1: [1 2 3]
Slice 2: [2 3 4 5]
Slice 3: [0 2 4]
条件を指定して、元の配列から値を抜き出すことができていますね。
次は2次元配列について見ていきます。
・2次元配列のスライス
import numpy as np
# 2次元配列
arr2 = np.array([[0, 1, 2], [3, 4, 5], [6, 7, 8]])
# 行インデックス1、列インデックス1から2までの要素を取得
after_slice4 = arr2[1, 1:3]
print("Slice 4:", after_slice4) # 出力: Slice 4: [4 5]
# 行インデックス1から2、列インデックス1から2までの要素を取得
after_slice5 = arr2[1:3, 1:3]
print("Slice 5:", after_slice5)
# 出力:
# Slice 5: [[4 5]
# [7 8]]
# 行インデックス0からステップ2、列インデックス0から1までの要素を取得
after_slice6 = arr2[0:3:2, :2]
print("Slice 6:", after_slice6)
# 出力:
# Slice 6: [[0 1]
# [6 7]]
出力
Slice 4: [4 5]
Slice 5: [[4 5]
[7 8]]
Slice 6: [[0 1]
[6 7]]
2次元配列では、2回条件を指定して、順番に抜き出しを行います。
コードに示すように、一行でまとめて要素の抜き出しが可能です。
同様に、3次元配列では条件を3つ指定することができます。それ以上の多次元配列も同様です。
これがスライスの基本的な使い方になります。
まとめ
まとめです。
スライスは
- 配列データなどから条件に一致する部分を抜き出す
操作でした。
また高次元データでは、カンマ区切りで順番に抜き出しを行います。
今回は以上です。
最後まで読んでいただきありがとうございました!
Discussion