np.float64和python float(64)的精度差异
为什么(或者看起来)python浮点比np.float64和python float(64)的精度差异,python,numpy,printing,precision,Python,Numpy,Printing,Precision,为什么(或者看起来)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
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]
这是一个显示差异