📜  argmax vs max (1)

📅  最后修改于: 2023-12-03 15:13:28.596000             🧑  作者: Mango

argmax vs max

在数据处理和机器学习中,经常会用到求取 数组(向量)中最大值的函数,其中最常用的就是 maxargmax 函数。

max

max 函数是一个内置函数,用于取数组中的最大值。当数组是一维的时候,可以直接使用 max 函数:

arr = [3, 2, 1, 4]
max_val = max(arr)
print(max_val)  # 输出 4

当数组是二维或更高维的时候,需要指定 axis 参数来指定沿着哪个维度求取最大值。例如,对于以下二维数组:

arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

要求取每行的最大值,则可以指定 axis=1

max_vals = max(arr, key=lambda x: max(x))
print(max_vals)  # 输出 [3, 6, 9]
argmax

argmax 函数是求取最大值所在索引的函数。当数组是一维的时候,可以直接使用 index 方法来实现:

arr = [3, 2, 1, 4]
max_idx = arr.index(max(arr))
print(max_idx)  # 输出 3

当数组是二维或更高维的时候,同样要指定 axis 参数来指定沿着哪个维度求取最大值。例如,对于以下二维数组:

arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

要求取每行的最大值所在列的索引,则可以使用 argmax 函数和 numpy 模块来实现:

import numpy as np

max_idxs = np.argmax(arr, axis=1)
print(max_idxs)  # 输出 [2 2 2]
总结
  • max 函数用于求取数组的最大值。
  • argmax 函数用于求取数组最大值所在的索引。
  • max 函数可以直接应用于一维数组,对于多维数组需要指定沿着哪个维度求取最大值。
  • argmax 函数可以用于任意维度的数组,需要使用 numpy 模块来实现。