Pythonで欠損値が含まれている配列の最大値、最小値を取得する方法です。
使用するのは、Pythonのnumpyライブラリのnanmax関数とnanmin関数です。
import numpy as npこのような欠損値が含まれる2次元配列で試してみます。
a = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, np.nan]])配列に欠損値が含まれている場合、max関数とmin関数で実行すると、欠損値のnanが返されてしまいます。
np.max(a)実行結果:
nannp.min(a)実行結果:
nanこの場合、nanmaxメソッドとnanminメソッドで実行すると、欠損値を除く最大値・最小値を取得することができます。
まず、最大値を取得してみましょう。
nanmaxメソッドで実行します。
最大値を取得することができました。
a.nanmax() 実行結果:
8.0
次に、最小値を取得してみましょう。
nanminメソッドで実行します。
最小値を取得することができました。
このように、デフォルトでは配列を1次元にした場合の、最大値・最小値が取得されます。
a.min() 実行結果:
1.0次に、列ごとの最大値を取得してみましょう。
引数axisに1を指定して、実行します。
列ごとの最大値を取得することができました。
なお、欠損値の行は
np.nanmax(a,axis=1) 実行結果:
array([3., 6., 8.])また、最小値も同様に取得することができます。
a.min(axis=1)実行結果:
array([1., 4., 7.])最後に、行ごとの最大値を取得してみましょう。
引数axisに0を指定して、実行します。
行ごとの最大値を取得することができました。
np.nanmax(a,axis=0)実行結果:
array([7., 8., 6.])また、最小値も同様に取得することができます。
np.nanmin(a,axis=0)実行結果:
array([1., 2., 3.])関連メソッド
【毎日Python】Pythonで配列の最大値・最小値のインデックスを取得する方法|numpy.argmax,argmin


