numpy.isclose

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/weixin_36670529/article/details/102457192

numpy.isclose(a, b, rtol=1e-05, atol=1e-08, equal_nan=False)[source]

Returns a boolean array where two arrays are element-wise equal within a tolerance.

The tolerance values are positive, typically very small numbers. The relative difference (rtol * abs(b)) and the absolute difference atol are added together to compare against the absolute difference between a and b.

Warning:The default atol is not appropriate for comparing numbers that are much smaller than one (see Notes).

Parameters:

a, b:array_like

Input arrays to compare.

rtol:float

The relative tolerance parameter (see Notes).

atol:float

The absolute tolerance parameter (see Notes).

equal_nan:bool

Whether to compare NaN’s as equal. If True, NaN’s in a will be considered equal to NaN’s in b in the output array.

Returns

y:array_like

Returns a boolean array of where a and b are equal within the given tolerance. If both a and b are scalars, returns a single boolean value.

See also

allclose

Notes

New in version 1.7.0.

For finite values, isclose uses the following equation to test whether two floating point values are equivalent.

absolute(a - b) <= (atol + rtol * absolute(b))

Unlike the built-in math.isclose, the above equation is not symmetric in a and b – it assumes b is the reference value – so that isclose(a, b) might be different from isclose(b, a). Furthermore, the default value of atol is not zero, and is used to determine what small values should be considered close to zero. The default value is appropriate for expected values of order unity: if the expected values are significantly smaller than one, it can result in false positives. atol should be carefully selected for the use case at hand. A zero value for atol will result in False if either a or b is zero.

Examples

>>> np.isclose([1e10,1e-7], [1.00001e10,1e-8])
array([ True, False])
>>> np.isclose([1e10,1e-8], [1.00001e10,1e-9])
array([ True, True])
>>> np.isclose([1e10,1e-8], [1.0001e10,1e-9])
array([False,  True])
>>> np.isclose([1.0, np.nan], [1.0, np.nan])
array([ True, False])
>>> np.isclose([1.0, np.nan], [1.0, np.nan], equal_nan=True)
array([ True, True])
>>> np.isclose([1e-8, 1e-7], [0.0, 0.0])
array([ True, False])
>>> np.isclose([1e-100, 1e-7], [0.0, 0.0], atol=0.0)
array([False, False])
>>> np.isclose([1e-10, 1e-10], [1e-20, 0.0])
array([ True,  True])
>>> np.isclose([1e-10, 1e-10], [1e-20, 0.999999e-10], atol=0.0)
array([False,  True])

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏孤独的S

数据结构

计算机二级中的公告基础部分有关于数据结构的部分,因此保存从百度中找来这些来方便自己的复习。在公共基础部分中,有数据结构,程序设计基础,软件工程基础,数据库设计基...

9830
来自专栏故久

SpringBoot+SpringMVC+MybatisPlus框架整合实现分页插件查询

根据官方文档的介绍,MybatisPlus(简称mp)是对mybatis的增强而不做改变,只为ti提高效率简化开发,具体参见http://mp.baomidou...

15920
来自专栏Java架构师学习

初探JVM,只需要这篇文章!

www.oracle.com -> 右下角Product Documentation -> 往下拉选择Java -> Java SE documentation...

8820
来自专栏科技分享

Linux中断管理 (3)workqueue工作队列【转】

转自:https://www.cnblogs.com/arnoldlu/p/8659988.html

14530
来自专栏区块链入门

【实践】Go的json解析:Marshal与Unmarshal

Json(Javascript Object Nanotation)是一种数据交换格式,常用于前后端数据传输。任意一端将数据转换成json 字符串,另一端再将该...

10030
来自专栏用户6093955的专栏

【软件18-循环队列及综合】

F:将向量空间想象为一个首尾相接的圆环,并称这种向量为循环向量。存储在其中的队列称为循环队列(Circular Queue)。这种循环队列可以以单链表的方式来在...

7520
来自专栏全栈前端精选

「中高级前端」窥探数据结构的世界- ES6版

数据结构是在计算机中组织和存储数据的一种特殊方式,使得数据可以高效地被访问和修改。更确切地说,数据结构是数据值的集合,表示数据之间的关系,也包括了作用在数据上的...

7130
来自专栏木东居士的专栏

数据治理平台工具前世今生

伴随着企事业单位信息化不断的深入、各种技术持续的发展以及人们对数据治理的认知不断加深,数据治理工具在过去的20年也不断的发展,笔者以某世界500集团企业案例为原...

46320
来自专栏全栈前端精选

前端应该如何准备数据结构和算法?

据我了解,前端程序员有相当一部分不是科班出身,以至于对“数据结构”和“算法”的基础概念都不是很清晰,这直接导致很多人在看到有关这部分的内容就会望而却步。

8220
来自专栏专注 Java 基础分享

Redis 的底层数据结构(SDS和链表)

Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。可能几乎所有的线上项目都会使用到 Redis,无论你是做缓...

7730

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励