如何比较2个浮动np数组

时间:2018-03-13 05:07:00

标签: python numpy floating-point assert

我有两个数组如下:

arr1 = array([ 0.40505 ,  0.571486,  0.471516,  0.641669,  0.554498,  0.356352, 0.60921 ,  0.653045,  0.46785 ,  0.42037 ,  0.360116,  0.568134])

arr2 = array([ 0.35635245,  0.55449831,  0.40504998,  0.47151649,  0.57148564, 0.64166886,  0.36011562,  0.56813359,  0.4203698 ,  0.46784994,
        0.6092099 ,  0.65304458])

我正在尝试使用np.allclose()比较这两个数组,如下所示:

assert np.allclose(arr1.sort(), arr2.sort())

但得到FALSE断言。我该如何比较这些。另外,我不完全理解np.allclose()。我读到它用于这些目的但不确定如何。

任何帮助都会非常棒!

2 个答案:

答案 0 :(得分:3)

sort方法对np数组进行排序,它不会返回任何内容。所以,你正在比较2无。

print(arr1.sort() is None)
>> True

您可以在将它们送入allclose函数之前对它们进行排序。

arr1.sort()
arr2.sort()
assert np.allclose(arr1, arr2)

这样,它应该可以工作。

答案 1 :(得分:0)

ndarray.sort不返回值。 你可以改用numpy.sort:

assert np.allclose(np.sort(arr1), np.sort(arr2))