3 回答

TA贡献1876条经验 获得超5个赞
(A==B).all()
测试数组(A == B)的所有值是否为True。
编辑(来自dbaupp的回答和yoavram的评论)
应当指出的是:
在特定情况下,此解决方案可能具有奇怪的行为:如果其中一个A或B为空而另一个包含单个元素,则返回True。由于某种原因,比较A==B返回一个空数组,all运算符返回该数组True。
另一个风险是,如果A和B不具有相同的形状并且不可播放,那么这种方法将引发错误。
最后,我提出的解决方案是标准之一,但是我认为,如果你有一个关于怀疑A和B形状或只是想安全:使用专门的功能之一:
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

TA贡献1848条经验 获得超6个赞
该(A==B).all()
解决方案是很整齐,但也有完成这个任务的一些内置的功能。即array_equal
,allclose
和array_equiv
。
(虽然,一些快速测试timeit
似乎表明该(A==B).all()
方法是最快的,这有点奇怪,因为它必须分配一个全新的数组。)
添加回答
举报