检查两个一维数组是否相等
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
这是我试过的代码:
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