python - numpy:有 `allclose(np.array, scalar)` 吗?

标签 python numpy

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

是否有结合这两种功能的功能?也就是说,可以比较数组和标量以获得近似元素相等性吗?

最佳答案

numpy 文档中的术语 arrayarray-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)

因此无需寻找另一个明确处理标量的函数,这些函数已经正确地处理标量。

关于python - numpy:有 `allclose(np.array, scalar)` 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41363751/

相关文章:

python - 从文件输入 numpy 数组

python - numpy 将 RGB 图像转换为 YIQ 颜色空间

python - Python中的全范围随机数

python - 如何创建一个空数组,然后在 NumPy 中附加到它?

python - 我如何弄清楚在 url 重定向期间到底发生了什么?

python - 通过 Mininet 网络发送 "random"流量

python - 删除lxml中的img标签

python - Sun Grid Engine,强制每个节点执行一项作业

python - 如何将 numpy 数组乘以标量

python - 从列表中找到最多的 "consensus"字符串