numpy如何优雅地将6.6e-16的小数显示为0?

怎样优雅地将很小很小的数转换为0

test_data=np.array([[1,2,3],[4,5,6],[7,8,9]])
test_mat=np.matrix(test_data)
print(test_mat)
print(np.linalg.det(test_mat))

结果
[[1 2 3]
[4 5 6]
[7 8 9]]
6.66133814775e-16

阅读 5.9k
2 个回答
round(np.linalg.det(test_mat), 2)
int(np.linalg.det(test_mat))


val = np.linalg.det(test_mat)
your_eps = 10 * np.finfo(np.float).eps
val = val if abs(val) > your_eps else 0
print(val)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题