首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >逐个元素比较两个NumPy数组是否相等

逐个元素比较两个NumPy数组是否相等
EN

Stack Overflow用户
提问于 2012-05-14 17:30:18
回答 4查看 519.3K关注 0票数 358

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

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

代码语言:javascript
复制
 >>> numpy.array([1,1,1]) == numpy.array([1,1,1])

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

是否必须对此数组的元素执行and操作才能确定这些数组是否相等,或者是否有更简单的方法进行比较?

EN

回答 4

Stack Overflow用户

发布于 2012-05-14 19:00:59

(A==B).all()解决方案非常简洁,但是有一些用于此任务的内置函数。即array_equalallclosearray_equiv

(不过,使用timeit进行的一些快速测试似乎表明(A==B).all()方法是最快的,这有点奇怪,因为它必须分配一个全新的数组。)

票数 116
EN

Stack Overflow用户

发布于 2019-10-07 06:46:01

通常两个数组会有一些小的数值误差,

您可以使用numpy.allclose(A,B),而不是(A==B).all()。这将返回布尔值True/False

票数 6
EN

Stack Overflow用户

发布于 2020-05-26 01:00:04

现在使用np.array_equal。来自文档:

代码语言:javascript
复制
np.array_equal([1, 2], [1, 2])
True
np.array_equal(np.array([1, 2]), np.array([1, 2]))
True
np.array_equal([1, 2], [1, 2, 3])
False
np.array_equal([1, 2], [1, 4])
False
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10580676

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档