Numpy argmin() 函数
Numpy argmin() 函数用于查找数组中沿指定轴的最小值的索引。它对于需要确定数据结构(例如数组或矩阵)中最小值位置的任务特别有用。
Numpy argmin() 函数适用于一维和多维数组。当该函数用于多维数组时,我们需要指定查找最小值索引的轴。
如果数组中的最小元素出现多次,numpy.argmin() 函数将返回第一次出现最小值的索引。
语法
以下是 Numpy argmin() 函数的语法 -
numpy.argmin(a, axis=None, out=None, keepdims=<no value>)
参数
以下是 Numpy argmin() 函数的参数 -
- a:要从中查找最小值索引的输入数组找到。
- out(可选):如果提供,结果将放置在此输出数组中。必须与预期输出具有相同的形状和类型。
- keepdims:如果设置为 True,则缩小的轴将保留在结果中,尺寸为 1,这意味着它们不会被移除。这可确保结果的维数与原始数组相同,这对于广播非常有用。
- axis(可选):沿该轴查找最小值的索引。
- None(默认):查找展平数组中最小值的索引。
- axis 可以是整数(例如,在二维数组中,0 表示行,1 表示列)。
返回类型
此函数返回一个整数(对于一维数组)或一个整数数组(对于多维数组),表示沿指定轴的最小值的索引。
示例
以下是使用 Numpy argmin() 函数查找一维数组中最小值的索引的基本示例 -
import numpy as np array = np.array([10, 20, 5, 30, 15]) min_index = np.argmin(array) print("数组:", array) print("最小值索引:", min_index)
输出
数组:[10 20 5 30 15] 最小值索引:2
示例:使用 axis 参数
axis 参数用于查找多维数组中沿特定轴的最小值索引。
在下面的示例中,我们通过将 axis 参数设置为在 numpy.argmin() 函数中,1(按行)和 0(按列)分别表示 -
import numpy as np array_2d = np.array([[85, 3, 7], [2, 8, 6], [66, 50, 9]]) # 沿行查找最小索引 min_index_row = np.argmin(array_2d, axis=1) # 沿列查找最小索引 min_index_col = np.argmin(array_2d, axis=0) print("二维数组:") print(array_2d) print("沿行查找最小值的索引:", min_index_row) print("沿列的最小值索引:", min_index_col)
输出
二维数组: [[85 3 7] [ 2 8 6] [66 50 9]] 沿行的最小值索引:[1 0 2] 沿列的最小值索引:[1 0 2]
示例:展平数组
当 axis=None 时,数组将被展平,并返回展平数组中最小值的索引。
以下示例通过先展平二维数组来查找其中的最小元素 -
import numpy as np array_2d = np.array([[10, 20, 30], [5, 25, 15], [40, 35, 50]]) min_index_flat = np.argmin(array_2d) print("二维数组:") print(array_2d) print("平化数组中最小值的索引:", min_index_flat)
输出
二维数组: [[10 20 30] [ 5 25 15] [40 35 50]] 平化数组中最小值的索引:3
示例:使用 out 参数
out 参数可用于将结果存储在预分配的数组中。输出数组必须具有适当的形状和数据类型。
import numpy as np array = np.array([4, 12, 7, 18, 9, 0]) out_array = np.empty((), dtype=int) np.argmin(array, out=out_array) print("数组:", array) print("最小值的索引(使用 out 函数):", out_array)
输出
数组:[ 4 12 7 18 9 0] 最小值的索引(使用 out 函数):5
示例:多次出现最小值
Numpy argmin() 函数返回如果最小值在数组中出现多次,则返回其第一次出现的索引。
以下示例中,值 5 出现了两次,但 numpy.argmin() 函数返回其第一次出现的索引 -
import numpy as np array = np.array([4, 59, 2, 76, 19, 5, 2]) min_value = np.argmin(array) print("数组:", array) print("最小值索引:", min_value)
输出
数组:[ 4 59 2 76 19 5 2] 最小值索引:2