gpt4 book ai didi

python - allclose() 和 array_equal() 有什么区别?

转载 作者:太空狗 更新时间:2023-10-30 01:10:47 24 4
gpt4 key购买 nike

Numpy 有以下方法:

allclose() - 假设数组的形状相同以及值比较的容差

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

我似乎找不到它们之间的任何区别。有例子吗?

最佳答案

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

另一方面,np.array_equal 设计用于整数数组,并且只检查是否完全相等。

考虑以下示例,该示例生成一个包含 100 个 float 的数组,将其除以 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

关于python - allclose() 和 array_equal() 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57698908/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com