numpy:具有多个元素的数组的真值不明确

numpy:具有多个元素的数组的真值不明确,第1张

numpy:具有多个元素的数组的真值不明确

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 ,其中 任何条目是不相等的条目 所有 项目 qmax_pair



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5639920.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存