如何检测两个NumPy数组是否近似相等(含形状一致性校验)
目前Numpy官方没有单独封装你需要的这种近似相等校验函数,你自己写的实现已经是最简洁高效的方案,工业界普遍也是这么处理的。
如果想要用现有Numpy函数组合成一行写法,也可以改成如下形式,可读性会稍好一些:
def allclose(x, y, *args, **kwargs): return np.array_equal(x.shape, y.shape) and np.allclose(x, y, *args, **kwargs)
两个常用的适配场景可以参考:
- 如果你需要把两个数组中值为
np.nan的位置也判定为相等,可以给np.allclose传入equal_nan=True参数,该参数从Numpy 1.19版本开始支持 - 如果是单元测试场景下做近似相等校验,很多测试框架内置的断言方法已经自带形状校验逻辑,不需要自己额外封装
内容的提问来源于stack exchange,提问作者MikeL
相关产品推荐
相关产品推荐

