【Python】配列の最大値の要素のインデックスを求める方法

この記事では、Pythonを使用して配列の中から最大値の要素のインデックスを見つける4つの方法を紹介します。

forループやNumPy、組み込み関数、lambda関数を使った方法を通じて、配列操作の基本を学ぶことができます。

目次から探す

方法1: forループを使用する方法

配列の最大値の要素のインデックスを求める方法の1つは、forループを使用する方法です。

以下のサンプルコードを見てみましょう。

def find_max_index(arr):
    max_val = arr[0]
    max_index = 0
    for i in range(1, len(arr)):
        if arr[i] > max_val:
            max_val = arr[i]
            max_index = i
    return max_index

# 配列の例
array = [10, 5, 8, 20, 15]
result = find_max_index(array)
print("最大値の要素のインデックスは:", result)
最大値の要素のインデックスは: 3

このコードでは、forループを使用して配列を走査し、最大値の要素のインデックスを見つける関数find_max_indexが定義されています。

配列arrayの中から最大値の要素のインデックスを求める例を示しています。

方法2: NumPyを使用する方法

NumPyライブラリを使用すると、より簡単に配列の最大値の要素のインデックスを求めることができます。

以下はNumPyを使用したサンプルコードです。

import numpy as np

array = np.array([10, 5, 8, 20, 15])
max_index = np.argmax(array)
print("最大値の要素のインデックスは:", max_index)
最大値の要素のインデックスは: 3

NumPyのargmax関数を使用することで、配列の最大値の要素のインデックスを簡単に取得できます。

方法3: max()とindex()を組み合わせる方法

Pythonの組み込み関数であるmax()index()を組み合わせることでも、配列の最大値の要素のインデックスを求めることができます。

以下はその例です。

array = [10, 5, 8, 20, 15]
max_val = max(array)
max_index = array.index(max_val)
print("最大値の要素のインデックスは:", max_index)
最大値の要素のインデックスは: 3

この方法では、まずmax()関数で最大値を取得し、その後index()関数でその値のインデックスを見つけます。

方法4: lambda関数を使用する方法

lambda関数を使用する方法もあります。

以下はlambda関数を使って最大値の要素のインデックスを求めるサンプルコードです。

array = [10, 5, 8, 20, 15]
max_index = max(enumerate(array), key=lambda x: x[1])[0]
print("最大値の要素のインデックスは:", max_index)
最大値の要素のインデックスは: 3

このコードでは、enumerate()関数を使ってインデックスと要素のペアを作成し、lambda関数を用いて最大値の要素のインデックスを見つけています。

上記の方法を使って、配列の最大値の要素のインデックスを求める際には、配列の要素が重複している場合や、空の配列の場合などにも適切に対応する必要があります。

目次から探す