NumPy nanmin – 沿轴的数组最小值,忽略任何 NaN

您好,欢迎来到Numpy nanmin教程 在本教程中,我们将学习 NumPy nanmin() 方法,并看到很多相关示例。那么让我们开始吧!

另请阅读:  NumPy nanmax – 沿轴的数组最大值,忽略任何 NaN


什么是 NumPy 南民?

在 Python 中,  NaN 表示 不是数字如果我们有一个包含一些 NaN 值的数组,并且想要找到其中的最小值,我们可以使用 nanmin() NumPy 中的方法。

NumPy 中的方法 nanmin() 是一个函数,它返回通过忽略数组中的 NaN 值计算出的数组元素的最小值。它可以是所有数组元素的最小值、沿行的数组元素的最小值或沿列的数组元素的最小值。

我们将在本教程的后续部分中看到每个示例的示例。


NumPy nanmin 的语法

让我们看一下该 nanmin() 函数的语法。

numpy.nanmin(a, axis=None, out=None, keepdims=<no value>, initial=<no value>, where=<no value>)
范围 描述 必需/可选
一个(类似数组) 输入数据。 必需的
计算数组最小值的轴。
它可以是 axis=0 或 axis=1 或 axis=None ,这意味着要返回整个数组的最小值。
选修的
出去 用于放置结果的替代输出数组。它必须具有与预期输出相同的形状。 选修的
keepdims(布尔值) 如果将此设置为 True,则缩小的轴将作为大小为 1 的维度保留在结果中。使用此选项,结果将针对输入数组正确广播。 选修的
最初的 输出元素的最大值。 选修的
在哪里 用于比较以找到最小值的元素。 选修的
NumPy nanmin 参数

返回:
一个数组,包含沿指定轴的数组最小值,忽略所有 NaN。


NumPy nanmin 的示例

让我们直接进入使用numpy.nanmin()函数的不同示例  。

一维数组的 NumPy nanmin

import numpy as np
 
arr = [np.nan, 54, 1, 3, 44]
# using the nanmin function to calculate the maximum
ans = np.nanmin(arr)
 
print("arr =", arr)
print("Result =", ans)

输出:

arr = [nan, 54, 1, 3, 44]
Result = 1.0

忽略 NaN 值,54、1、3 和 44 中的最小值为 1,因此返回。


二维数组的 NumPy nanmin

import numpy as np
 
arr = [[30, -9], [8, np.nan]]
# using the nanmin function to calculate the maximum
ans = np.nanmin(arr)
 
print("arr =", arr)
print("Result =", ans)

输出:

arr = [[30, -9], [8, nan]]
Result = -9.0

与前面的示例类似,30、-9 和 8 的最小值为 8。


NumPy nanmin 沿数组的轴

轴 = 0

import numpy as np
 
arr = [[16, 4], [np.nan, 1]]
# using the nanmin function to calculate the maximum
ans = np.nanmin(arr, axis=0)
 
print("arr =", arr)
print("Result =", ans)

输出:

arr = [[16, 4], [nan, 1]]
Result = [16.  1.]

在这里,对特定列的每行中的值进行比较以找到最小元素。

ans[0] = min(arr[0][0], arr[1][0]) = min(16, np.nan) = 16 (ignoring NaN)
ans[1] = min(arr[0][1], arr[1][1]) = min(4, 1) = 1

轴 = 1

import numpy as np
 
arr = [[16, 4], [np.nan, 1]]
# using the nanmin function to calculate the maximum
ans = np.nanmin(arr, axis=1)
 
print("arr =", arr)
print("Result =", ans)

输出:

arr = [[16, 4], [nan, 1]]
Result = [4. 1.]

当 axis=1时,将在所有列上比较每行中的元素以找到最小值。

ans[0] = min(arr[0][0], arr[0][1]) = min(16, 4) = 4
ans[1] = min(arr[1][0], arr[1][1]) = min(np.nan, 1) = 1 (ignoring NaN)

包含无穷大的数组的 NumPy nanmin

现在让我们看看该 numpy.nanmin() 方法如何处理数组中的无穷大和 NaN。

import numpy as np
  
# array containing +infinity
a = np.array([16, 3, np.nan, 7, np.inf])
# array containing -infinity
b = np.array([16, 3, np.nan, 7, np.NINF])
# array containing +infinity and -infinity
c = np.array([16, 3, np.nan, np.NINF, 7, np.inf])
  
min_a = np.nanmin(a)
min_b = np.nanmin(b)
min_c = np.nanmin(c)
  
print("a =", a)
print("Minimum of the array a =", min_a)
print("\nb =", b)
print("Minimum of the array b =", min_b)
print("\nc =", c)
print("Minimum of the array c =", min_c)

输出:

a = [16.  3. nan  7. inf]
Minimum of the array a = 3.0
 
b = [ 16.   3.  nan   7. -inf]
Minimum of the array b = -inf
 
c = [ 16.   3.  nan -inf   7.  inf]
Minimum of the array c = -inf

在上面的代码中,  NINF 表示 -infinity ,  inf 表示 infinity注意,

  • 如果数组包含 正无穷大 ,则最小值是 忽略 NaN 的整个数组的最小值。
  • 如果数组包含 负无穷大 ,则最小值为负无穷大
  • 如果数组同时包含 正无穷大和负无穷大,则数组的最小值为 -inf,即 负无穷大

结论

就这样!在本教程中,我们学习了 Numpy nanmin 方法,并使用该方法练习了不同类型的示例。
如果您想了解有关 NumPy 的更多信息,请随时阅读我们的 NumPy 教程


参考