gpt4 book ai didi

python - 按元素比较两个 NumPy 数组的相等性

转载 作者:IT老高 更新时间:2023-10-28 12:19:07 33 4
gpt4 key购买 nike

比较两个 NumPy 数组是否相等(其中相等定义为:A = B iff 对于所有索引 i:A[i] == B[i])的最简单方法是什么?

只需使用 == 就可以得到一个 bool 数组:

 >>> numpy.array([1,1,1]) == numpy.array([1,1,1])

array([ True, True, True], dtype=bool)

我是否必须这个数组的元素来确定数组是否相等,或者有没有更简单的方法来比较?

最佳答案

(A==B).all()

测试数组 (A==B) 的所有值是否为真。

注意:也许你还想测试 A 和 B 形状,例如 A.shape == B.shape

特殊情况和替代方案(来自 dbaupp 的回答和 yoavram 的评论)

需要注意的是:

  • 此解决方案在特定情况下可能会出现奇怪的行为:如果 AB 为空且另一个包含单个元素,则返回 。出于某种原因,比较 A==B 会返回一个空数组,而 all 运算符会为此返回 True
  • 另一个风险是,如果 AB 的形状不同且不可广播,那么这种方法会引发错误。

总之,如果您对 AB 形状有疑问,或者只是为了安全起见:请使用其中一种特殊功能:

np.array_equal(A,B)  # test if same shape, same elements values
np.array_equiv(A,B) # test if broadcastable shape, same elements values
np.allclose(A,B,...) # test if same shape, elements have close enough values

关于python - 按元素比较两个 NumPy 数组的相等性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10580676/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com