在numpy中,您可以使用allclose(X, Y)
函数逐个元素地检查两个数组之间的近似相等性。此外,使用类似X==5
的表达式,您可以检查数组和标量之间的元素相等。
是否有兼具两种功能的功能?也就是说,可以比较数组和标量的近似元素相等性?
答案 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.allclose
或np.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)
因此,无需找到另一个显式处理标量的函数,这些函数已经正确地与标量一起使用。