我正在考虑任意 n 的形状 (n,2) 的数组。我想检查两个元素的子数组是否匹配。举个例子:
import numpy as np
a=np.array([[1,0],[2,0]])
b=np.array([[1,0],[2,0]])
c=np.array([[3,0],[4,0]])
d=np.array([[1,0],[5,0]])
if (b == a).any() == True:
print('y')
if (c == a).any() == True:
print('y1')
if (d == a).any() == True:
print('y2')
在此代码中,我将第一个和第三个条件评估为 True。正如所写的,所有语句都返回 True,因为代码按元素比较数组。
是否有一种简单的方法可以完成此操作,而无需循环遍历每个数组并直接比较?
(c == a).all(axis=1).any()
首先检查轴 1 上的所有元素是否相同,然后再检查任何子数组是否如此。
仅当您想要比较具有相同第一个索引的子数组时,即 a[0] 与 b[0] 或 a[1] 与 b[1],但不是 a[0] 与 b[1] 时,这才有效.