NumPy amax() 函数
NumPy amax() 函数返回数组中指定轴的最大值。如果未指定轴,则计算数组中所有元素的最大值。此外,还可以应用条件,根据特定标准获取最大值。
在 NumPy 中,amax() 函数是 max() 函数的别名,这意味着这两个函数执行完全相同的操作——它们计算数组或指定轴上的最大值。
语法
以下是 NumPy amax() 函数的语法 -
numpy.amax(a, axis=None, out=None, keepdims=False, initial=None, where=True)
参数
以下是 NumPy amax() 函数的参数 -
- a:输入数组。该数组可以是任意形状或数据类型。
- axis(可选):计算最大值的轴。如果为 None,则在展平数组上计算最大值。
- out(可选):用于放置结果的备用输出数组。其形状必须与预期输出相同。
- keepdims(可选):如果为 True,则缩小的维度在输出中保留为大小为 1 的维度。默认值为 False。
- initial(可选):启动比较的初始值。如果未提供,则默认值为该数据类型的最小可能值。
- where(可选):布尔数组。如果为 True,则在计算中包含相应的元素;否则,忽略它。
返回值
此函数返回一个标量值或一个 NumPy 数组,其中包含指定轴上的最大值。
示例
以下是使用 NumPy amax() 函数查找数组中最大值的基本示例 -
import numpy as np # 输入数组 array = np.array([3, 5, 1, 7, 9]) # 查找最大值 max_value = np.amax(array) print("最大值:", max_value)
输出
以下是上述代码的输出 −
最大值:9
示例:沿轴求最大值
amax() 函数可以查找多维数组中指定轴上的最大值。在以下示例中,我们计算沿行和列的最大值 -
import numpy as np # 二维输入数组 array = np.array([[3, 24, 5], [8, 45, 2], [7, 9, 19]]) # 沿行的最大值 (axis=1) max_along_rows = np.amax(array, axis=1) print("行方向的最大值:", max_along_rows) # 沿列的最大值 (axis=0) max_along_columns = np.amax(array, axis=0) print("列方向的最大值:", max_along_columns)
输出
以下是上述代码的输出 −
行方向的最大值:[24 45 19] 列方向的最大值:[ 8 45 19]
示例:使用"keepdims"获取最大值
keepdims 参数将缩减后的维度保留为输出中的 1 维。这意味着,当我们传递一个多维数组并将此参数设置为 True 时,缩减后的维度将保持为 1,从而保留数组的原始维度。在以下示例中,我们演示了它的用法 −
import numpy as np # 二维输入数组 array = np.array([[3, 7, 5], [8, 4, 2], [6, 10, 9]]) # 沿 keepdims=True 的列求最大值 max_with_keepdims = np.amax(array, axis=0, keepdims=True) print("使用 keepdims 求最大值: ", max_with_keepdims)
输出
以下是上述代码的输出 -
使用 keepdims 求最大值: [[ 8 10 9]]
示例:使用 Where 条件求最大值
where 参数允许根据条件计算最大值。在以下示例中,我们计算了小于 8 的最大元素 -
import numpy as np # 输入数组 array = np.array([3, 5, 1, 7, 9]) max_without_condition = np.amax(array) print("无条件最大值:", max_without_condition) # where 条件(仅包含小于 8 的值) max_with_condition = np.amax(array, where=array < 8, initial=-1) print("有条件最大值:", max_with_condition)
输出
以下是上述代码的输出 -
无条件最大值:9 有条件最大值:7
示例:'amax()' 的图形表示
在以下示例中,我们将二维数组中行和列的最大值可视化。为此,我们需要导入 numpy 和 matplotlib.pyplot 模块 -
import numpy as np import matplotlib.pyplot as plt # 二维输入数组 array = np.array([[3, 7, 5], [8, 4, 2], [6, 1, 9]]) # 沿行方向的最大值 max_rows = np.amax(array, axis=1) # 沿列方向的最大值 max_columns = np.amax(array, axis=0) plt.plot(range(len(max_rows)), max_rows, label="沿行方向的最大值") plt.plot(range(len(max_columns)), max_columns, label="沿列的最大值") plt.title("amax() 结果可视化") plt.xlabel("索引") plt.ylabel("最大值") plt.legend() plt.grid() plt.show()
输出
该图可视化了数组沿行和列的最大值 -

numpy_statistical_functions.html