📜  如何比较两个 NumPy 数组?(1)

📅  最后修改于: 2023-12-03 14:53:12.160000             🧑  作者: Mango

如何比较两个 NumPy 数组?

在 NumPy 中,比较两个数组的最基本的方法是使用 == 运算符。这将返回一个新的数组,其中每个元素都是两个原始数组中对应位置上元素的比较结果。如果元素相等,则该位置的数组为 True,否则为 False

下面是一个示例,演示如何使用 == 运算符比较两个数组:

import numpy as np

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

c = a == b

print(c)

输出结果:

[ True  True False]

在这个示例中,我们创建了两个 NumPy 数组 abc = a == b 比较了这两个数组的每个元素,返回一个布尔数组 c,其中每个元素都对应于 ab 中相应位置上的比较结果。

除了 == 运算符外,NumPy 还提供了其他一些方法来比较两个数组,如 <><= 等。这些运算符也将返回一个布尔数组,其中每个元素都对应于 ab 中相应位置上的比较结果。

另外,NumPy 还提供了一些函数来实现复杂的数组比较操作。例如,numpy.array_equal() 函数可以比较两个数组的形状和元素是否相同,而 numpy.allclose() 函数则可以比较两个数组中的元素是否“近似相等”。

下面是一个示例,演示如何使用这些函数比较两个数组:

import numpy as np

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

same_shape = np.array_equal(a.shape, b.shape)
same_elements = np.array_equal(a, b)

close_enough = np.allclose(a, b)

print('Same shape:', same_shape)
print('Same elements:', same_elements)
print('Close enough:', close_enough)

输出结果:

Same shape: True
Same elements: False
Close enough: False

在这个示例中,我们首先使用 numpy.array_equal() 函数比较了两个数组的形状是否相同。由于 ab 的形状都是 (3,),因此该函数返回 True

接下来,我们使用 numpy.array_equal() 函数比较了两个数组的元素是否相同。由于 ab 的最后一个元素不一样,因此该函数返回 False

最后,我们使用 numpy.allclose() 函数比较了两个数组的元素是否“近似相等”。由于 ab 的最后一个元素的差别比较大,因此该函数返回 False

综上所述,以上就是比较两个 NumPy 数组的方法和实例。对于任何复杂的数组比较操作,都建议使用 NumPy 提供的函数来保证操作的正确性和效率。