检查两个一维数组是否相等

Check if two 1-D arrays are equal

这是我试过的代码:

import numpy as np

a = np.array([
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
])

if a[0] == [1, 2, 3]:
    print("equal")

这是我遇到的错误:

Exception has occurred: ValueError
The truth value of an array with more than one element is ambiguous. 
Use a.any() or a.all()

只需使用 np.all(),正如错误消息告诉您的那样。在 numpy 数组上执行 == 将 return 与原始数组形状相同,仅包含 True 和 False 值。如果特定索引处的项目相等,则它们将为 True,并且否则为假。 .all() 只会 return True 如果 每个 数组中的项目是真的,所以它会 return 如果数组是完美的等于:

if np.all(a[0] == [1, 2, 3]):
    print("equal")

输出:

equal

您可以简单地使用 numpy.array_equal:

In [32]: if np.array_equal(a[0], [1, 2, 3]):
    ...:     print("equal")
equal