如何比较两个 numpy 数组:示例


您可以使用以下方法来比较两个 NumPy 数组的值:

方法 1:测试两个 NumPy 数组在元素级别是否相等

 #test if array A and array B are element-wise equal
n.p. array_equal (A,B)

方法 2:测试两个 NumPy 数组在元素级别是否相等(在容差范围内)

 #test if array A and array B are element-wise equal (within absolute tolerance of 2)
n.p. allclose (A, B, atol= 2 )

以下示例展示了如何在实践中使用每种方法。

示例 1:测试两个 NumPy 数组在元素级别是否相等

以下代码显示如何使用array_equal()函数测试两个 NumPy 数组在元素级别是否相等:

 import numpy as np

#create two NumPy arrays
A = np. array ([1, 4, 5, 7, 10])
B = np. array ([1, 4, 5, 7, 10])

#test if arrays are element-wise equal
n.p. array_equal (A,B)

True

该函数返回True,因为两个 NumPy 数组具有相同的长度,并且在相同位置具有相同的值。

然而,如果两个 NumPy 数组具有相同的值但位置不同,该函数将返回False

 import numpy as np

#create two NumPy arrays with same values but in different positions
A = np. array ([1, 4, 5, 7, 10])
B = np. array ([1, 4, 7, 5, 10])

#test if arrays are element-wise equal
n.p. array_equal (A,B)

False

示例 2:测试两个 NumPy 数组在元素级别是否相等(在容差范围内)

以下代码演示如何使用allclose()函数测试两个 NumPy 数组在元素级别是否相等(容差值2内):

 import numpy as np

#create two NumPy arrays
A = np. array ([1, 4, 5, 7, 10])
B = np. array ([1, 4, 7, 8, 10])

#test if arrays are element-wise equal (within absolute tolerance of 2)
n.p. allclose (A, B, atol= 2 )

True

该函数返回True ,因为每个 NumPy 数组之间的匹配元素都在 2 以内。

例如,我们看到每个数组的第三个和第四个位置的元素不同,但由于每对相距 2 个值,因此函数返回 true。

但是,如果我们将绝对容差 (atol) 参数更改为1 ,则该函数将返回False

 import numpy as np

#create two NumPy arrays
A = np. array ([1, 4, 5, 7, 10])
B = np. array ([1, 4, 7, 8, 10])

#test if arrays are element-wise equal (within absolute tolerance of 1)
n.p. allclose (A, B, atol= 1 )

False

该函数返回False ,因为每个 NumPy 数组的第三个位置中的对应元素彼此之间的距离不是 1。

注意:有关array_equalallclose函数的完整说明,请参阅 NumPy 文档。

其他资源

以下教程解释了如何在 NumPy 中执行其他常见任务:

如何移动 NumPy 数组中的元素
如何计算 NumPy 中元素出现的次数
如何计算 NumPy 数组的众数

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注