如何解决np.float64和python float64的精度差异
为什么python浮点数(或似乎)比numpy.float64
更精确。这里我举个例子:
import numpy as np
ann = 72.595895691
detections = np.array([0,71.91000009999999],dtype=np.float64)
group_det = [1]
dist1 = [ann - detections[det] for det in group_det]
dist = np.zeros(len(group_det),dtype=np.float64)
for idx,det in enumerate(group_det):
dist[idx] = ann - detections[det]
print(f'dist1: {dist1}')
print(f'dist {dist}')
此代码的输出是:
dist1: [0.6858955910000049]
dist [0.68589559]
我的问题是为什么 dist1 具有更高的精度?
注意:代码似乎是以非常复杂的方式运行的,但是我不得不以相同的方式减少代码的一部分。
解决方法
正如@hpaulj在评论中提到的那样,它不是计算精度。正在打印。将此行添加到代码中,以查看在numpy中打印时想要的精度:
np.set_printoptions(precision=16)
在上一行之后输出代码:
dist1: [0.6858955910000049]
dist [0.6858955910000049]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。