比较两个包含NaN值的数组,并使用Numpy返回逐元素最小值


要比较两个包含一些NaN值的数组并返回逐元素最小值,请在Python Numpy中使用**numpy.minimum()** 方法。(原文错误地使用了maximum())

  • 如果其中一个被比较的元素是NaN,则返回该元素。

  • 如果两个元素都是NaN,则返回第一个。

  • 后一种区别对于复数NaN很重要,复数NaN定义为实部或虚部至少有一个是NaN。

  • 最终结果是NaN会被传播。

返回x1和x2的逐元素最小值。如果x1和x2都是标量,则这是一个标量。

比较两个数组并返回一个新数组,该数组包含逐元素最小值。如果其中一个被比较的元素是NaN,则返回该元素。如果两个元素都是NaN,则返回第一个。后一种区别对于复数NaN很重要,复数NaN定义为实部或虚部至少有一个是NaN。最终结果是NaN会被传播。

步骤

首先,导入所需的库:

import numpy as np

使用array()方法创建两个二维numpy数组。我们插入了一些包含nan值的元素:

arr1 = np.array([[6, np.nan, np.nan],[25, 11, 0]])
arr2 = np.array([[8, 12, np.nan],[22, 0, 26]])

显示数组:

print("Array 1...
", arr1) print("
Array 2...
", arr2)

获取数组的类型:

print("
Our Array 1 type...
", arr1.dtype) print("
Our Array 2 type...
", arr2.dtype)

获取数组的维度:

print("
Our Array 1 Dimensions...
",arr1.ndim) print("
Our Array 2 Dimensions...
",arr2.ndim)

获取数组的形状:

print("
Our Array 1 Shape...
",arr1.shape) print("
Our Array 2 Shape...
",arr2.shape)

要比较两个包含NaN值的数组并返回逐元素最小值,请使用numpy.minimum()方法:

print("
Result (minimum)...
",np.minimum(arr1, arr2))

示例

import numpy as np

# Creating two 2D numpy array using the array() method
# We have inserted elements with some nan values
arr1 = np.array([[6, np.nan, np.nan], [25, 11, 0]])
arr2 = np.array([[8, 12, np.nan],[22, 0, 26]])

# Display the arrays
print("Array 1...
", arr1) print("
Array 2...
", arr2) # Get the type of the arrays print("
Our Array 1 type...
", arr1.dtype) print("
Our Array 2 type...
", arr2.dtype) # Get the dimensions of the Arrays print("
Our Array 1 Dimensions...
",arr1.ndim) print("
Our Array 2 Dimensions...
",arr2.ndim) # Get the shape of the Arrays print("
Our Array 1 Shape...
",arr1.shape) print("
Our Array 2 Shape...
",arr2.shape) # To compare two arrays with some NaN values and return the elementwise minimum, use the numpy.maximum() method in Python Numpy # If one of the elements being compared is a NaN, then that element is returned. # If both elements are NaNs then the first is returned. # The latter distinction is important for complex NaNs, which are defined as at least one of the real or imaginary parts being a NaN. # The net effect is that NaNs are propagated. print("
Result (minimum)...
",np.minimum(arr1, arr2))

输出

Array 1...
[[ 6. nan nan]
[25. 11. 0.]]

Array 2...
[[ 8. 12. nan]
[22. 0. 26.]]

Our Array 1 type...
float64

Our Array 2 type...
float64

Our Array 1 Dimensions...
2

Our Array 2 Dimensions...
2

Our Array 1 Shape...
(2, 3)

Our Array 2 Shape...
(2, 3)

Result (minimum)...
[[ 6. nan nan]
[22. 0. 0.]]

更新于:2022年2月7日

445 次浏览

启动您的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.