基礎データ分析

【10分講座】argmax/minを初心者向けに図解!

基本講座_argmax/min

argmax/argmin関数ってどうやってなににつかうの?

今回の記事は、「argmax/argmin関数の利用方法」について解説していきます。

あまり利用頻度は多くない関数ですが、かゆいところに手が届く関数ですので覚えておきましょう!

(E資格でDeepLearningの実装をNumpyで行うときに頻出です。)

今回利用するデータは、下記のような構造データです。

次元配列最大値index(12)
1次元[1,2,3,4,5,6,7,12,9,10,11,8]list[7]
2次元[[1,2,3,4,5,6],
[7,12,9,10,11,8]]
list[1,1]
3次元[
[[1,2,3],[4,5,6]],
[[7,12,9],[10,11,8]]
]
list[1,0,1]
操作データ
【補足】Numpyの次元と要素の考え方_よく混乱します

こちらのデータから、最大値の12のインデックスを実際にコードで抽出する操作を実行することで、関数の動作を理解していこうと思います!

argmax/argminの基本構文

そもそも、argmax/min関数はPythonのNumpyライブラリの関数です。

Numpyの次元の考え方は、先ほど図に示した通りなので、しっかりと理解をしてから本項に進んでください。

argmaxの書き方は以下の通りです。
※argminはargmaxを書き換えるだけで書き方は同じです。

import numpy as np
np.argmax(array, axis = None)
#axisは省略可能です。

numpy argmax関数

まずは「axis」を指定せずにそのまま実行してみます。

import numpy as np

# 1次元
array_1 = np.array([1,2,3,4,5,6,7,12,9,10,11,8])
# 2次元
array_2 = np.array([[1,2,3,4,5,6],[7,12,9,10,11,8]])
# 3次元
array_3 = np.array([[[1,2,3],[4,5,6]],[[7,12,9],[10,11,8]]])

print(np.argmax(array_1))
print(np.argmax(array_2))
print(np.argmax(array_3))
7
7
7

axisを指定しないと、次元関係なく前から何番目の要素が最大値化を返してくれます。

なので、全て7番目と実行結果に表示されました。

続いてaxisを指定して実行します。

import numpy as np

# 1次元
array_1 = np.array([1,2,3,4,5,6,7,12,9,10,11,8])
# 2次元
array_2 = np.array([[1,2,3,4,5,6],[7,12,9,10,11,8]])
# 3次元
array_3 = np.array([[[1,2,3],[4,5,6]],[[7,12,9],[10,11,8]]])

print(np.argmax(array_1,axis=0))
print(np.argmax(array_2,axis=1))
print(np.argmax(array_3,axis=2))
7 #最大値12のインデックスを返す
[5 1] #2次元の各[1,2,3,4,5,6][7,12,9,10,11,8]の最大値インデックスを返す
[[2 2][1 1]] #3次元の各[1,2,3][4,5,6][7,12,9][10,11,8]の最大値インデックスを返す

argmax/min関数そのものというよりはNumpy配列の考え方さえ理解できれば関数の利用の理解できるというのが本質です。

機械学習やDeepLearningのライブラリを使う分にはあまり利用することがない関数かもしれませんが、numpyを使って1からライブラリを開発する場合には頻出する関数ですので余裕があれば抑えておきましょう!

E資格を受験される場合は、ライブラリを原理を問われることが多いので頻出です。

まとめ

今回は、「Pythonのargmax/min関数とその利用方法」を解説しました。

あまり利用頻度の高い関数ではないですが、AI・機械学習エンジニアを目指す場合は頻出ですので理解はしておくことをオススメします。

また、理論から実装して機械学習を理解したい人は、Numpyで1から作り上げることができる以下の書籍に挑戦すると力が付きます。

機械学習のエッセンス 実装しながら学ぶPython、数学、アルゴリズム【電子書籍】[ 加藤 公一 ]

価格:3,080円
(2023/1/15 22:02時点)
感想(0件)

それでは、また次の記事でお会いしましょう!

最近のコメント

    • この記事を書いた人
    • 最新記事

    ふみと

    このブログでは、データサイエンティストとして市場価値を上げる方法を独自にまとめて発信しています。 もし記事を気に入っていただけたらサイトをブックマークもしくは、Twitterをフォローお願いします! 【経歴】
    日系大手企業勤務
    データサイエンティスト歴:7年
    【保有資格】
    JDLA E資格 , Advancesd Marketer , ビジネス統計スペシャリスト , 統計検定2級 , TOEIC 805点
    【スキル】
    Python/Tableau/SQL/HTML/CSS/機械学習/Deep Learning/RPA

    著書

    Pythonの独学専用pdf教材発売中!

    -基礎データ分析