Pythonで複数の配列の要素を比較して最大値を取得する方法です。
使用するのは、Pythonのnumpyライブラリのmaximum関数とfmax関数です。
import numpy as np
まず、このような2つの配列で試してみましょう。
a_1 = np.array([2, 5, 9])
a_2 = np.array([3, 1, 7])
maximum関数の引数に、比較したい配列を指定します。
今回は、配列を使用しますが、リストでも可能です。
実行します。
2つの配列の要素を比較して、値が大きいほうの数値を取得することができました。
2と3を比較して3、5と1を比較して5、9と7を比較して9、が取得されています。
np.maximum(a_1, a_2)
実行結果:
array([3, 5, 9])
次に、要素に欠損値が入っている配列で試してみましょう。
a_1 = np.array([2, 5, 9])
a_3 = np.array([5, np.nan, 3])
maximum関数で実行します。
欠損値を示すnanが取得されました。
maximam関数では、比較対象がどんなに大きい数値であっても、欠損値が優先され取得されます。
np.maximum(a_1, a_3)
実行結果:
array([ 5., nan, 9.])
欠損値を対象としない場合には、fmax関数を使用します。
実行します。
欠損値を対象外として、5を取得することができました。
np.fmax(a_1, a_3)
実行結果:
array([5., 5., 9.])
関連メソッド
【毎日Python】Pythonで配列やリストを比較して最小値を取得する方法|numpy.minimum/fmin
【毎日Python】Pythonで配列の最大値・最小値のインデックスを取得する方法|numpy.argmax,argmin