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() 尋找陣列中最大值的索引的方法

找出一維陣列中最高值的索引

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() 方法返回的索引找到陣列中的最大值。

如果我們在陣列中有兩個最大的值,該方法返回陣列中最先出現的最大元素的索引。

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 是陣列中出現兩次的最高值,但是 np.argmax() 方法返回 6 的索引,在索引 1 處,因為它在陣列中排在第一位。

尋找二維陣列中最高值的索引

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,第三列的最高值在索引 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