python NumPy更改数组的浮点精度

kcwpcxri  于 5个月前  发布在  Python
关注(0)|答案(1)|浏览(47)

如何在不执行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
>>>

ttygqcqt

ttygqcqt1#

您应该使用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])

字符串
请注意,您可以同时使用相对公差和绝对公差。

相关问题