Python numpy.argmax() 関数

Suraj Joshi 2023年1月30日
  1. numpy.argmax() の構文
  2. コード例:numpy.argmax() 配列内の最大値のインデックスを求めるメソッド
  3. コード例:numpy.argmax() メソッドで axis パラメータを設定して配列の最大値のインデックスを求める
  4. コード例:numpy.argmax() メソッドで out パラメータを設定して、配列の最大値のインデックスを求める
Python numpy.argmax() 関数

Python Numpy numpy.argmax() は、与えられた NumPy 配列で最も高い値を持つ値のインデックスを返します。

numpy.argmax() の構文

numpy.argmax(a, axis=None, out=None)

パラメータ

a 配列またはオブジェクトで、最大値のインデックスを求める必要がある配列に変換することができます。
axis 行 (axis=0)または列(axis=1) に沿って最大値のインデックスを見つけます。デフォルトでは、最大値のインデックスは配列を平坦化して求められます。
out np.argmax メソッドの結果のプレースホルダです。このプレースホルダは結果を保持するのに適切なサイズでなければなりません。

戻り値

配列全体の中で最も大きな値を持つ要素のインデックスの配列。

コード例:numpy.argmax() 配列内の最大値のインデックスを求めるメソッド

1 次元配列の中で最も高い値のインデックスを求める

import numpy as np

a=np.array([2,6,1,5])

print("Array:")
print(a)

req_index=np.argmax(a)
print("\nIndex with the largest value:")
print(req_index)

print("\nThe largest value in the array:")
print(a[req_index])

出力:

Array:
[2 6 1 5]

Index with the largest value:
1

The largest value in the array:
6

これは、与えられた入力配列の中で最大の値を持つ要素のインデックスを与えます。

また、np.argmax() メソッドから返されるインデックスを用いて、配列の最大値を求めることもできます。

配列の中に 2つの最大値がある場合、このメソッドは配列で最初に現れる最大の要素のインデックスを返します。

import numpy as np

a=np.array([2,6,1,6])

print("Array:")
print(a)

req_index=np.argmax(a)
print("\nIndex with the largest value:")
print(req_index)

print("\nThe largest value in the array:")
print(a[req_index])

出力:

Array:
[2 6 1 5]

Index with the largest value:
1

The largest value in the array:
6

ここでは、6 は配列で 2 回出現する最大値ですが、np.argmax()6 のインデックスが配列の最初に来るので、1 のインデックスを返します。

2 次元配列の最大値のインデックスを求める

import numpy as np

a=np.array([[2,1,6],
            [7,4,5]])

print("Array:")
print(a)

req_index=np.argmax(a)
print("\nIndex with the largest value:")
print(req_index)

出力:

Array:
[[2 1 6]
 [7 4 5]]

Index with the largest value:
3

ここでは、axis パラメータが指定されなかった場合、配列は平坦化され、平坦化された配列の最大の要素のインデックスが返されます。

コード例:numpy.argmax() メソッドで axis パラメータを設定して配列の最大値のインデックスを求める

列軸に沿って最も高い要素のインデックスを求める

import numpy as np

a=np.array([[2,1,6],
            [7,4,5]])

print("Array:")
print(a)

req_index=np.argmax(a,axis=0)
print("\nIndices with the largest value along column axis:")
print(req_index)

出力:

Array:
[[2 1 6]
 [7 4 5]]

Index with the largest value:
[1 1 0]

axis=0 を設定する、各列に沿った最高値のインデックスが得られます。ここでは、1 番目の列はインデックス 1 が最も高い値を持ち、2 番目の列はインデックス 1 が最も高い値を持ち、3 番目の列はインデックス 0 が最も高い値を持ちます。

行軸に沿った最高値の要素のインデックスを求める

import numpy as np

a=np.array([[2,1,6],
            [7,4,5]])

print("Array:")
print(a)

req_index=np.argmax(a,axis=1)
print("\nIndices with the largest value along row axis:")
print(req_index)

出力:

Array:
[[2 1 6]
 [7 4 5]]

Indices with the largest value along the row axis:
[2 0]

axis=1 とすると、各行の最高値のインデックスが出力されます。

コード例:numpy.argmax() メソッドで out パラメータを設定して、配列の最大値のインデックスを求める

import numpy as np

a=np.array([[2,1,6],
            [7,4,5]])

req_index=np.array(0)

print("Array:")
print(a)

np.argmax(a,out=req_index)
print("\nIndex with the largest value:")
print(req_index)

出力:

Array:
[[2 1 6]
 [7 4 5]]

Index with the largest value:
3

ここでは、変数 req_index がインデックスの値のプレースホルダとして働き、出力のサイズが req_index と等しくなるようにしなければなりません。

著者: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn