Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python allclose()和array_equal()之间有什么区别?_Python_Numpy - Fatal编程技术网

Python allclose()和array_equal()之间有什么区别?

Python allclose()和array_equal()之间有什么区别?,python,numpy,Python,Numpy,Numpy有以下方法: allclose()-假设数组的形状相同,并且有一个比较值的公差 array_equal()-检查形状和元素值,无公差(值必须完全相等) 我似乎找不出他们之间有什么区别。任何示例?np.allclose设计用于浮点数数组。浮点计算有固有的精度损失,因此您经常会发现自己的数字应该相等,但相差很小 另一方面,np.array_equal设计用于整数数组,只检查精确相等 考虑以下示例,该示例生成一个包含100个浮点数的数组,将其除以1.5,然后再乘以1.5。由于精度损失,阵列不

Numpy有以下方法:

allclose()
-假设数组的形状相同,并且有一个比较值的公差

array_equal()
-检查形状和元素值,无公差(值必须完全相等)


我似乎找不出他们之间有什么区别。任何示例?

np.allclose
设计用于浮点数数组。浮点计算有固有的精度损失,因此您经常会发现自己的数字应该相等,但相差很小

另一方面,
np.array_equal
设计用于整数数组,只检查精确相等

考虑以下示例,该示例生成一个包含100个浮点数的数组,将其除以1.5,然后再乘以1.5。由于精度损失,阵列不再完全相等,但仍在非常小的公差范围内

arr = np.random.rand(1000)

arr2 = arr / 1.5
arr2 = arr2 * 1.5

print(np.array_equal(arr, arr2))
# False

print(np.allclose(arr, arr2, atol=1e-16, rtol=1e-16))
# True

宽容?此外,不能对字符串数组等具有“容差”。