NumPy 更改数组的浮点精度

问题描述 投票:0回答:1

如何更改整个数组的浮点精度而不必执行

np.set_printoptions
?这与印刷无关;它与印刷有关。我希望压缩这些值以与其他数组进行相等性检查。

e = np.array([0.8292222222222225, 0.1310000000000003]) 

e = np.array([0.829225, 0.131003]) 

我希望能够将

0.8292222222222225
与其他数组中的
0.829225
进行比较。

无法获得平等

True

>>> e = np.array([0.8292222222222225, 0.1310000000000003]) 
>>> e[0]
0.8292222222222225
>>> e[0]==0.829225
False
>>> 
python numpy floating-point
1个回答
0
投票

您应该使用

numpy.isclose
功能。它允许您比较公差内的元素:

>>> a = np.array([0.8292222222222225, 0.1310000000000003])
>>> b = np.array([0.8293, 0.132])
>>> np.isclose(a, b, atol=1e-3)
array([ True,  True])
>>> np.isclose(a, b, atol=1e-4)
array([ True, False])
>>> np.isclose(a, b, atol=1e-5)
array([False, False])

请注意,您可以使用相对容差和绝对容差。

© www.soinside.com 2019 - 2024. All rights reserved.