簡體   English   中英

如何在Python中使用isinstance檢查float?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM