[英]How to check float using isinstance in Python?
我無法理解以下內容:當我檢查“ RUN_ID”的類型時,它會清楚地注明“ float”。 但是當我檢查它是否為float時,它返回False。 到底是什么類型?如何檢查?
tags.loc[0, 'RUN_ID']
Out[36]: 38607.0
type(tags.loc[0, 'RUN_ID'])
Out[34]: float
isinstance(type(tags.loc[0, 'RUN_ID']),np.float64)
Out[32]: False
isinstance(type(tags.loc[0, 'RUN_ID']),np.float32)
Out[33]: False
isinstance(type(tags.loc[0, 'RUN_ID']),float)
Out[35]: False
您使用的isinstance
錯誤。 代替
isinstance(type(tags.loc[0, 'RUN_ID']),float)
做就是了
isinstance(tags.loc[0, 'RUN_ID'],float)
type()
函數返回類型為type
的對象,您需要該對象本身的類型。
isinstance(type(tags.loc[0, 'RUN_ID']),float)
返回false,因為type(tags.loc[0, 'RUN_ID'])
返回float
,實際上是type type
。 您可以說出類似
type(type(tags.loc[0, RUN_ID']))
所以你實際上檢查,看看是否該類型的類型float
是相同類型的float
,這是False
。
所以也許嘗試
isinstance(tags.loc[0, 'RUN_ID'],float)?
檢查常規浮點類型而不是numpy。 測試結果如下
w = isinstance(n, float) # True
x = isinstance(n, np.float32) # False
y = isinstance(n, np.float64) # False
z = type(n) == float # True
我相信isinstance()會檢查更多值,如果某個值是某個類,而不是兩個類值是否相同。
例如, isinstance(0.35, float)
返回True。
您擁有的方式基本上是在詢問“類型float是否是float的實例?” 這是不正確的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.