Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
np.float64和python float(64)的精度差异_Python_Numpy_Printing_Precision - Fatal编程技术网

np.float64和python float(64)的精度差异

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

为什么(或者看起来)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]

这是一个显示差异