Python numpy min() 函数用于查找给定数组中沿指定轴的最小元素。
语法
这个统计 Python numpy min() 方法的语法是
numpy.min(a, axis = None, out = None, keepdims = <no value>, initial = <no value>, where = <no value>)
这里,a 是一个必须的 ndarray,所有其他参数都是可选的。
Python numpy min 示例
在这个例子中,我们声明了一个一维 ndarray,它将从中找到最小的项。
import numpy as np a = np.array([5, 11, 1, 99, 77, 6]) b = np.min(a) print(b)
1
二维示例
在这个程序中,我们将声明一个二维方阵,以找到所有ndarray行和列中的最小值。
import numpy as np a = np.array([[40, 7], [3, 50]]) b = np.min(a) print(b)
3
Python numpy min 按行和列
如果没有 axis 参数,此 min() 方法将找到并返回最小元素,而不管维度或大小。但是,我们可以通过指定 axis 值来计算行和列的最小值。例如,在下面的示例中,axis = 0 打印每列中的最小项,axis = 1 打印二维数组的每一行。
keepdims 参数接受布尔值 True 或 False,默认值为 False。因此,如果使用 keepdims 参数并赋值 True,结果将重塑。
在这里,c 变量找到每列的最小值,d 变量找到每行的最小值。
import numpy as np a = np.random.randint(10, 80, size = (5, 4)) print(a) b = np.min(a) print(b) c = np.min(a, axis = 0) print(c) d = np.min(a, axis = 1) print(d) e = np.min(a, axis = 1, keepdims = True) print(e)
[[31 25 14 12]
[13 41 25 54]
[79 74 24 52]
[20 18 53 56]
[30 43 54 62]]
12
[13 18 14 12]
[12 13 24 18 30]
[[12]
[13]
[24]
[18]
[30]]
out 参数
使用 out 变量将 min() 方法的结果保存在一个数组中。请记住,变量的大小必须与输出匹配。在此示例中,np.min(a, axis = 1, out = x) 将把结果保存在 x 数组中。
import numpy as np
a = np.random.randint(10, 80, size = (5, 4))
print(a)
x = np.arange(5)
b = np.min(a, axis = 1)
print(b)
np.min(a, axis = 1, out = x)
print('x = ', x)
[[38 13 35 78]
[79 59 33 71]
[51 15 53 21]
[60 23 46 32]
[74 42 20 31]]
[13 33 15 23 20]
x = [13 33 15 23 20]
where 参数
要使用 where 参数,您必须使用 initial;否则,Python numpy min 函数将引发错误。例如,我们在下面的代码中沿轴使用了 where 参数。
import numpy as np a = np.array([[2, 5, 3], [4, 6, 7], [1, 2, 9]]) print(a) b = np.min(a) print(b) c = np.min(a, where = [False, True, True], initial = 10) print(c) d = np.min(a, where = [False, True, True], axis = 0, initial = 10) print(d)
[[2 5 3]
[4 6 7]
[1 2 9]]
1
2
[10 2 3]
where = [False, True, True], initial = 10 – 它将检查第 2 列和第 3 列,并忽略第 1 列的值来查找最小值。
where = [False, True, True], axis = 0, initial = 10 – 因为第一列为 False,所以最小值变为 10(来自 initial 参数)。假设您将第三列的 initial 值更改为 2。在这种情况下,它会将 initial 值 (2) 与列值 (3, 7, 9) 进行比较并返回 2 作为输出。
import numpy as np a = np.array([[2, 5, 3], [4, 6, 7], [1, 2, np.nan]]) print(a) b = np.min(a) print(b) c = np.min(a, where = ~np.isnan(a), initial = 10) print(c)
[[ 2. 5. 3.]
[ 4. 6. 7.]
[ 1. 2. nan]]
nan
1.0