PythonのNumPyライブラリには、条件に基づいて配列から要素を選択するためのnumpy.where
関数があります。この関数は、条件が真である場合には配列x
から要素を選択し、そうでない場合には配列y
から要素を選択します。
例えば、以下のように使用することができます。
import numpy as np
a = np.arange(10)
print(np.where(a < 5, a, 10*a))
このコードは、配列a
の各要素が5未満であればその要素を、そうでなければその要素の10倍を新しい配列に格納します。
また、numpy.where
関数は、リストの中に特定の値が存在するかどうかを調べるのにも使えます。以下にその例を示します。
import numpy as np
A = np.array([[0, 3, 1], [9, 4, 6], [2, 7, 3], [1, 8, 9], [6, 2, 7], [4, 8, 0]])
B = np.array([0,1,2,3])
results = []
for elem in B:
results.append(np.where(A==elem)[0])
print(results)
このコードは、2次元配列A
の中に1次元配列B
の各要素が存在する行のインデックスを探し、その結果をresults
に格納します。
以上のように、numpy.where
関数は、Pythonでリスト操作を行う際に非常に便利なツールです。この関数を使いこなすことで、より効率的なデータ操作が可能になります。.