numpy:有一个'allclose(np.array,scalar)`吗?

时间:2016-12-28 14:07:09

标签: python numpy

在numpy中,您可以使用allclose(X, Y)函数逐个元素地检查两个数组之间的近似相等性。此外,使用类似X==5的表达式,您可以检查数组和标量之间的元素相等。

是否有兼具两种功能的功能?也就是说,可以比较数组和标量的近似元素相等性?

1 个答案:

答案 0 :(得分:2)

numpy文档中的术语 array array-like 主要表示输入转换为np.asarray(in_arg)np.asanyarray(in_arg)的数组。因此,如果输入标量,它将转换为标量数组:

>>> import numpy as np
>>> np.asarray(5)    # or np.asanyarray
array(5)

函数np.allclosenp.isclose只是进行逐元素比较,无论第二个参数是标量数组,具有相同形状的数组还是正确广播到第一个数组的数组:

>>> import numpy as np
>>> arr = np.array([1,2,1,0,1.00001,0.9999999])
>>> np.allclose(arr, 1)
False
>>> np.isclose(arr, 1)
array([ True, False,  True, False,  True,  True], dtype=bool)

>>> np.isclose(arr, np.ones((10, 6)))
array([[ True, False,  True, False,  True,  True],
       [ True, False,  True, False,  True,  True],
       [ True, False,  True, False,  True,  True],
       [ True, False,  True, False,  True,  True],
       [ True, False,  True, False,  True,  True],
       [ True, False,  True, False,  True,  True],
       [ True, False,  True, False,  True,  True],
       [ True, False,  True, False,  True,  True],
       [ True, False,  True, False,  True,  True],
       [ True, False,  True, False,  True,  True]], dtype=bool)

因此,无需找到另一个显式处理标量的函数,这些函数已经正确地与标量一起使用。