python NumPy更改数组的浮点精度

kcwpcxri  于 2024-01-05  发布在  Python
关注(0)|答案(1)|浏览(114)

如何在不执行np.set_printoptions的情况下更改整个数组的浮点精度?这与打印无关;我希望压缩值以与其他数组进行相等检查。

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

字符串

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


我希望能够将0.8292222222222225与其他数组中的0.829225进行比较。
无法获得与True相同的相等性

  1. >>> e = np.array([0.8292222222222225, 0.1310000000000003])
  2. >>> e[0]
  3. 0.8292222222222225
  4. >>> e[0]==0.829225
  5. False
  6. >>>

ttygqcqt

ttygqcqt1#

您应该使用numpy.isclose函数。它允许您在公差范围内比较元素:

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

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

相关问题