Python numpy min

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