【毎日Python】Pythonで配列やリストを比較して最小値を取得する方法|numpy.minimum/fmin

minimum
こつこつPython

Pythonで2つの配列の要素を比較して最小値を取得する方法です。
使用するのは、Pythonのnumpyライブラリのminimum関数とfmin関数です。

import numpy as np

まず、このような配列で試してみましょう。

a_1 = np.array([2, 5, 9])
a_2 = np.array([3, 1, 7])

maximum関数の引数に、比較したい2つの配列を指定します。
今回は、配列を使用しますが、リストでも可能です。
実行します。
2つの配列の要素を比較して、最小値を取得することができました。
2と3を比較して2、5と1を比較して1、9と7を比較して7、が取得されています。

np.minimum(a_1, a_2)

実行結果:

array([2, 1, 7])

次に、要素に欠損値が入っている配列で試してみましょう。

a_1 = np.array([2, 5, 9])
a_3 = np.array([5, np.nan, 3])

minimum関数で実行します。
欠損値を示すnanが取得されました。
minimum関数では、欠損値が優先して取得されます。

np.minimum(a_1, a_3)

実行結果:

array([ 5., nan,  9.])

欠損値を対象としない場合には、fmax関数を使用します。
実行します。
欠損値を対象外として、5を取得することができました。

np.fmax(a_1, a_3)

実行結果:

array([5., 5., 9.])

なお、似た関数にmaximum関数があります。
maximum関数では、2つの配列の要素を比較して、最大値を取得することができます。

a_1 = np.array([2, 5, 9])
a_2 = np.array([3, 1, 7])
a_3 = np.array([5, np.nan, 3])
np.maximum(a_1, a_2)

実行結果:

array([3, 5, 9])

また、欠損値を比較対象としない場合には、fmax関数を使用します。

np.fmax(a_1, a_3)

実行結果:

array([5., 5., 9.])

関連メソッド

Pythonで配列やリストを比較して最大値を取得する方法|numpy.maximum/fmax

Pythonで数字や文字列の最小値を取得|min

【毎日Python】Pythonで数字や文字列の最大値を取得|max

【毎日Python】Pythonで配列の最大値・最小値のインデックスを取得する方法|numpy.argmax,argmin

未経験からはじめるPython学習「キノクエスト」 キノクエスト
  • スキルアップしたいけど何からはじめればよいかわからない…
  • プログラミングスクールに入りたいけど料金が高い…
  • プログラミングを学んでも業務やキャリアに活かせるか不安…

キノクエストは、このような悩みを持つ方にぴったりのプログラミング学習サービスです。
国内最大級のプログラミング学習系YouTubeチャンネル「キノコード」が提供しているから、未経験者にもわかりやすく質の高い学習体験を実感していただけます。

キノクエスト