Pythonで配列の最大値のインデックスを取得する方法を現役エンジニアが解説【初心者向け】

初心者向けにPythonで配列の最大値のインデックスを取得する方法について解説しています。Pythonの標準の関数では一度に最大値を取得することは出来ませんが、numpy.argmaxというモジュールを使うと一度に最大値を取得することが出来ます。

TechAcademyマガジンは受講者数No.1のオンラインプログラミングスクールTechAcademy [テックアカデミー]が運営。初心者向けに解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。

Pythonで配列の最大値のインデックスを取得する方法について解説します。

そもそもPythonについてよく分からないという方は、Pythonとは何なのか解説した記事を読むとさらに理解が深まります。

 

なお本記事は、TechAcademyのオンラインブートキャンプPython講座の内容をもとに紹介しています。

 

田島悠介

今回は、Pythonに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

配列の最大値のインデックスを取得する方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

配列の最大値のインデックスを取得する方法

Pythonの標準機能では、単一の操作で「配列の最大値のインデックスを取得する」ことはできません。

いくつか方法はありますが、ここではmaxlist.indexを組み合わせた方法を紹介します。またサードパーティ製のnumpyモジュールを用いると、numpy.argmaxにより、単一の操作で目的の処理を実現できます。

 

実際に書いてみよう

サンプルコード

import random
import numpy

# 乱数を用いてリストを作成する
xs = [random.randint(0, 10) for _ in range(10)]
print(xs)

# maxとlist.indexによる実装
max_value = max(xs)
max_index = xs.index(max_value)
print(max_index)

# numpy.argmaxによる実装
max_index = numpy.argmax(xs)
print(max_index)

 

実行結果

※乱数を用いているため、実行ごとに結果が異なります。

[9, 1, 3, 5, 10, 7, 6, 2, 9, 5]
4
4

 

解説

最初にrandomモジュールを用いて乱数列を生成しました。

1つ目にmax, list.indexを用いた実装を示しました。2つ目にnumpy.argmaxを用いた実装を示しました。(当然ですが)結果は1つ目と同じになりました。

 

[PR] Pythonで挫折しない学習方法を動画で公開中

監修してくれたメンター

橋本紘希

システムインテグレータ企業勤務のシステムエンジニア。

開発実績: Javaプログラムを用いた業務用Webアプリケーションや、基幹システム用バッチアプリケーションなどの設計構築試験。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

TechAcademyでは、初心者でも最短4週間でPythonを使った人工知能(AI)や機械学習の基礎を習得できるオンラインブートキャンプPython講座を開催しています。

挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。