10. 配列の条件抽出とフィルタリング¶
このセクションでは、NumPy 配列に対して条件を用いてデータを抽出したり、フィルタリングする手法について学びます。NumPy を用いることで効率的にデータを操作することができ、データ分析や機械学習の準備段階で非常に役立ちます。
10.1 条件抽出とは¶
条件抽出とは、配列の中から特定の条件を満たす要素のみを抽出する操作のことです。NumPy では、ブールインデックスを用いることで簡単に条件抽出を行うことができます。
10.1.1 ブールインデックスの作成¶
まずは条件式を使ってブールインデックスを作成します。ブールインデックスは元の配列と同じサイズで、条件に合致する要素にはTrue
、合致しない要素にはFalse
が格納されます。
import numpy as np
# サンプルデータの作成
data = np.array([3, 6, 9, 12, 15, 18])
# 9以上の要素を抽出するためのブールインデックス
condition = data >= 9
print(condition)
10.1.2 条件抽出¶
次に、作成したブールインデックスを利用して条件に合致する要素を抽出します。
10.2 複数条件によるフィルタリング¶
NumPy を使うと、複数の条件を組み合わせてデータを抽出することができます。&
(論理積)や|
(論理和)を使って条件を組み合わせます。
10.2.1 複数条件の例¶
# サンプルデータの作成
data = np.array([2, 4, 6, 8, 10, 12])
# 4以上かつ10以下の要素を抽出する条件
condition = (data >= 4) & (data <= 10)
filtered_data = data[condition]
print(filtered_data)
10.2.2 論理演算子を用いる注意点¶
条件を組み合わせる際は、各条件を書いた全体を括弧で囲む必要があります。これは、演算子の優先順位によるエラーを防ぐためです。
10.3 NumPy のwhere
関数¶
NumPy のwhere
関数を用いると、条件に従って異なる値を返すことができます。
10.3.1 where
関数の基本¶
# サンプルデータの作成
data = np.array([5, 10, 15, 20, 25])
# 条件に基づいて新しい配列を作成
result = np.where(data > 15, "大", "小")
print(result)
このコードでは、値が 15 より大きい場合に"大"、それ以外の場合には"小"が返されます。
これらのテクニックを活用することで、NumPy 配列から望むデータを効率的に抽出し、データ処理や分析を効率よく進めていくことができます。皆さんもぜひコードを実行しながら、各操作の感覚をつかんでください。