【发布时间】:2020-03-12 17:24:21
【问题描述】:
根据我对 numpy 的理解,np.equal([x, prod]) 命令逐个元素地比较数组,如果它们相等,则为每个元素返回 True。但是每次我执行命令时,它都会返回 False 进行第一次比较。另一方面,如果我将两个数组复制粘贴到命令中,它会为两者返回 True,如您在屏幕截图中所见。那么,为什么两者有区别呢?
【问题讨论】:
-
当您通过硬编码值比较它们时,它们将相等,因为它们以完全相同的方式近似。但是一旦对它们应用一些数学运算,就不再可能检查两个浮点是否相等。
-
您可以这样做,或者将它们与一个小增量进行比较。获得浮点数的原因是大多数数学运算都需要浮点值,例如平方根、点积、矩阵求逆等等。
-
通过使用一个小的增量,我的意思是比较两个值相等或只是一个非常小的值。看看这个:docs.scipy.org/doc/numpy/reference/generated/numpy.isclose.html
-
或
np.allclose,如果您不需要返回掩码。
标签: numpy jupyter-notebook ipython numpy-ndarray