如何比较两个NumPy数组

  • Post category:Python

比较两个NumPy数组的主要操作之一是使用numpy.array_equal函数。此函数比较两个数组的形状大小相等、元素类型相同以及元素值相同性,返回相等性的布尔值。

下面是对numpy.array_equal函数的使用示例说明:

示例1

import numpy as np

a = np.array([[3, 4], [5, 6]])
b = np.array([[3, 4], [5, 6]])

print(np.array_equal(a, b)) #True

在本示例中,我们定义了两个数组ab,都是二维数组。然后,我们比较两个数组的相等性,并输出结果。

输出结果应该为True,因为两个数组的形状大小相等、元素类型相同以及元素值相同性。

示例2

import numpy as np

a = np.array([1, 2, 3])
b = np.array([1, 2, 4])

print(np.array_equal(a, b)) #False

在本示例中,我们定义了两个数组ab,都是一维数组。然后,我们比较两个数组的相等性,并输出结果。

输出结果应该为False,因为两个数组的形状大小相等、元素类型相同,但元素值不同。

此外,如果需要比较两个数组的逐个元素的大小关系,则可以使用逐元素比较函数numpy.array_equal

下面是对逐元素比较函数numpy.allclose的使用示例说明:

示例3

import numpy as np

a = np.array([1, 2, 3])
b = np.array([1.0001, 1.9999, 3.0001])

print(np.allclose(a, b, atol=0.001)) #True

在本示例中,我们定义了两个数组ab,都是一维数组。然后,我们使用函数numpy.allclose比较两个数组的逐元素的大小关系,并输出结果。

在比较时,我们需要指定比较的绝对误差容差,即参数atol的值。本示例中,我们指定atol=0.001,表示我们容忍两个元素的差值小于等于0.001才认为它们相等。

输出结果应该为True。