我有個號碼查找數字是否爲float64
例如,
a = 1.22373
type(a) is float
就像聰明,我想找到一個數字是否
float64
與否。
我將如何使用python或numpy?
我有個號碼查找數字是否爲float64
例如,
a = 1.22373
type(a) is float
就像聰明,我想找到一個數字是否
float64
與否。
我將如何使用python或numpy?
使用isinstance:
>>> f = numpy.float64(1.4)
>>> isinstance(f, numpy.float64)
True
>>> isinstance(f, float)
True
numpy.float64從python原有的浮子式繼承。那是因爲它既是float也是float64(@Bakuriu thx用於指出)。但是,如果你將檢查蟒蛇浮動實例變量爲float64類型,你會因此得到False
:
>>> f = 1.4
>>> isinstance(f, numpy.float64)
False
>>> isinstance(f, float)
True
如果你只比較numpy的類型,它可能是更好的基礎的上的數字比較來識別每一個D型,其是底層C代碼的功能。在我的系統,12是np.float64
數量:
>>> np.dtype(np.float64).num
12
>>> np.float64(5.6).dtype.num
12
>>> np.array([5.6]).dtype.num
12
同非numpy的值也用它,你可以通過它的東西,如鴨鍵入自己的方式:
def isdtype(a, dt=np.float64):
try:
return a.dtype.num == np.dtype(dt).num
except AttributeError:
return False
注意'當'f'是'np.float64'時isinstance(f,float)'是'True',因爲'np.float64'繼承自python的'float'。 – Bakuriu
只要有人認爲'float64'就是'float'這個概念,就是這樣的。只要堅持這個概念。 – Alfe