到目前为止我没有遇到任何问题,所以这纯粹是出于好奇。
在Python中,我通常定义浮点数和浮点数组,如下所示:
import numpy as np
s = 1.0
v = np.array([1.0, 2.0, 3.0])
如果上述情况s
为float
,则v
的元素属于numpy.float64
类型。
为了更加一致,我可以,例如,这样做:
import numpy as np
s = np.float64(1.0)
v = np.array([1.0, 2.0, 3.0])
从准确性/精确度的角度来看,是否存在建议使用“一致”方法的情况?如果有的话,我会在“不一致”的方法中出现什么样的错误?
答案 0 :(得分:2)
Python(至少CPython)在内部使用双精度的float
类型 - 双精度是64位浮点数(可能并不总是但我没有找到平台+编译器,其中双精度不是64位花车)。
因此,无论您将其保留为float
还是np.float64
,都不应该发生任何问题。
但是,如果你使用Pythons float
和NumPys np.float32
,你会发现差异,因为float
具有更高的精度(64位)而不是np.float32
(32位)。