Numpy Nextafter:如何在 Python 中使用 Numpy Nextafter?

正在寻找一个函数来返回给定数字在另一个数字方向上的下一个浮点值?您是否希望相同的函数对一组数字而不是单个数字执行相同的操作?

好吧,不用再寻找了,numpy库已经提供了您正在寻找的东西 – nextafter()函数。在本文中,我们将演示上述函数的功能,并了解作为其功能输入的基本结构。

另请阅读:Numpy.kron():如何使用 Numpy 计算克罗内克积?

我们首先使用以下代码导入numpy库。

import numpy as np

此后,我们将 通过以下各节进一步探讨nextafter( ) 函数。

  • nextafter( ) 函数的语法 
  • 在标量上使用nextafter( )
  • 在 N 维数组上使用nextafter( )

nextafter( ) 函数的语法

该函数依赖于主要输入 x1 和 x2,如下所示,其中 x1 是要沿着 x2 方向找到下一个浮点值的实体。也可以在nextafter()函数中使用的其他可选输入如下。

numpy.nextafter(x1, x2, out=None, *, where=True, dtype=None)

在哪里,

  • x1 –  N 维数组或要找到最接近浮点值的标量
  • x2 –  N 维数组或标量,提供搜索方向
  • out –默认情况下设置为none的可选构造,但可用于将结果存储在与输出长度相同的所需数组中
  • * kwargs 或关键字参数,它是一个可选构造,用于将参数的关键字可变长度传递给函数
  • 其中 –一个可选构造,用于在设置为True (默认设置)时计算给定位置的通用函数 (ufunc),或在设置为False时不计算
  • dtype –一个可选结构,用于指定正在使用的数据类型

在标量上使用nextafter( )

在本节中,我们将使用几个标量来部署到nextafter()函数中,如下所示。

a = 100
b = -50
np.nextafter(a, b)

运行上述代码后,后端会发生以下计算,以在沿“b”方向搜索时返回与“a”最接近的下一个数字。

  • ‘b’ 被指定为 ‘-50’,这意味着要向左或在 ‘100’ 之前而不是在 ‘100’ 之后搜索最接近 ‘a’ 的下一个数字的方向。
  • 最接近“100”的数字是 99.99999999999999(Python 将浮点数返回到小数点后 14 位精度)。
在标量上使用nextafter( )

从上面的解释可以看出,当第二个输入“x2”大于第一个输入“x1”时,搜索方向与在数轴上向右搜索数字(第一个输入,x1)同义;如果第二个输入“x2”小于第一个输入“x1”。

即使使用正无穷大或负无穷大作为“x2”而不是其他数字,同样的逻辑也适用,我们将使用以下代码来建立这个难题。

c = -10
d = +np.inf
np.nextafter(c, d)
在 +Infinity 方向上对标量使用nextafter ( )

上述结果证明,由于搜索方向是正无穷大,因此返回的最近浮点数位于数轴中“-10”的右侧。


在 N 维数组上使用nextafter( )

当部署在数组上时,结果将四舍五入到数组中给定的小数点后的相同位数,而不是如下所示的整个 14 位数字。

ar1 = np.array([[1.05, 3, 7],
                [2.9, 9, 4.3666667]])
ar2 = np.array([[-1, 0.3, +np.inf],
                [0, -np.inf, 10]])
np.nextafter(ar1, ar2)
在数组上使用nextafter ()

结论

现在我们已经到了本文的结尾,希望它已经详细说明了如何使用 numpy 库中的 nextafter( ) 函数。这是另一篇文章,详细介绍了使用 numpy kron()计算克罗内克乘积AskPython中还有许多其他有趣且内容丰富的文章,可能对那些希望提高 Python 水平的人有很大帮助。 马泽尔托夫