PythonのNumPyライブラリには、条件にあった配列の要素のインデックスを返してくれるnp.where
という関数があります。この関数は要素のインデックスを返してくれるだけでなく、条件文がTrueになる要素にする操作や条件分がFalseになる要素にする操作などを設定することもできます。
np.whereの基本的な使い方
以下に、np.where
の最も基本的な使い方を示します。
import numpy as np
# サンプル配列の準備
a = np.arange(10)
print("a:", a)
# 条件を満たす要素のindexを取得
indices = np.where(a%2==0)
print("Indices of elements that are even:", indices)
このコードでは、0から9までの整数を要素に持つ配列a
を作成し、その中で偶数である要素のインデックスを取得しています。
条件によって別要素を代入
np.where
は、条件によって配列の要素を別の値に置き換えることも可能です。以下にその例を示します。
import numpy as np
# サンプル配列の準備
a = np.arange(10)
print("a:", a)
# 条件によって別要素を代入
b = np.where(a < 5, a, 10*a)
print("b:", b)
このコードでは、配列a
の要素が5未満であればそのままの値を、5以上であればその10倍の値を要素に持つ新しい配列b
を作成しています。
以上が、PythonのNumPyライブラリのnp.where
関数の基本的な使い方になります。この関数を使うことで、配列の要素に対する条件判定とその結果に基づく操作を効率的に行うことができます。.