numpy数组定义了一个自定义的相等运算符,即它们是实现
__eq__magic函数的对象。因此,
==运算符和依赖于这种相等性的所有其他功能/运算符称为此自定义相等性函数。
Numpy的相等性基于数组的元素明智比较。因此,作为回报,您将获得另一个具有布尔值的numpy数组。例如:
x = np.array([1,2,3])y = np.array([1,4,5])x == y
退货
array([ True, False, False], dtype=bool)
但是,
in与 列表 结合使用的运算符要求仅返回 单个 布尔值的相等比较。这就是错误要求
all或的原因
any。例如:
any(x==y)
返回,
True因为结果数组的至少一个值是
True。相反
all(x==y)
会返回,
False因为 并非 所得数组的所有值都是
True。
因此,在您的情况下,解决该问题的方法如下:
other_pairs = [p for p in points if all(any(p!=q) for q in max_pair)]
并
print other_pairs打印预期结果
[array([1, 6]), array([3, 7])]
为什么这样?好,我们来看一个项目 p 从 点 ,其中 任何 的条目是不相等的条目 所有 项目 q 从 max_pair 。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)