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

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

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

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ではPythonを使って機械学習の基礎を学ぶPythonオンライン講座を開催しています。

初心者向けの書籍を使って人工知能(AI)や機械学習について学ぶことができます。

現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間で習得することが可能です。

また、現役エンジニアから学べる無料のプログラミング体験会も実施しているので、ぜひ参加してみてください。