正如在評論中指出,Python的類型,如int
,float
,str
,list
等都是可贖回,即可以使用int()
並獲得0
,或str()
和list()
,並得到一個空字符串或列表。
>>> type(42)()
0
同樣也適用於numpy
類型。你可以使用dtype
屬性numpy的陣列的類型,然後用它來初始化「失蹤」的價值觀:
>>> A = np.array([1, 2, 3, 4, float("nan")]) # common type is float64
>>> A
array([ 1., 2., 3., 4., nan])
>>> A[np.isnan(A)] = A.dtype.type() # nan is replaced with 0.0
>>> A
array([ 1., 2., 3., 4., 0.])
>>> B = np.array([1, 2, 3, -1, 5]) # common type is int64
>>> B
array([ 1, 2, 3, -1, 5])
>>> B[B == -1] = B.dtype.type() # -1 is replaced with
>>> B
array([1, 2, 3, 0, 5])
這也適用於但是提供一個無參數的構造函數,其他類,其結果將是一流的,而不是null
在你的榜樣的實例..
>>> class Foo(object): pass
>>> type(Foo())()
<__main__.Foo at 0x7f8b124c00d0>
'INT()''返回由0'默認和'浮動()''返回由0.0'默認。這有幫助嗎? – gtlambert
@idjaw,並執行'x = something或int()'不滿足相同的需求? – Chris