4 回答

TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超6個贊
如果您對數(shù)組使用numpy,也可以使用
x = x[numpy.logical_not(numpy.isnan(x))]
等效地
x = x[~numpy.isnan(x)]
[感謝chbrown新增了速記]
說明
內(nèi)部函數(shù)numpy.isnan返回一個布爾值/邏輯數(shù)組,該數(shù)組在True每個地方都x具有非數(shù)字值。因?yàn)槲覀兿M喾?,我們使用邏輯不操作,~以獲得與陣列True到處都是這x 是一個有效的數(shù)字。
最后,我們使用此邏輯數(shù)組索引到原始數(shù)組x,僅檢索非NaN值。

TA貢獻(xiàn)1993條經(jīng)驗(yàn) 獲得超6個贊
filter(lambda v: v==v, x)
由于v!= v僅適用于NaN,因此適用于列表和numpy數(shù)組

TA貢獻(xiàn)1966條經(jīng)驗(yàn) 獲得超4個贊
嘗試這個:
import math
print [value for value in x if not math.isnan(value)]

TA貢獻(xiàn)1878條經(jīng)驗(yàn) 獲得超4個贊
執(zhí)行以上操作:
x = x[~numpy.isnan(x)]
要么
x = x[numpy.logical_not(numpy.isnan(x))]
我發(fā)現(xiàn)重置為相同的變量(x)不會刪除實(shí)際的nan值,而必須使用其他變量。將其設(shè)置為其他變量將刪除nans。例如
y = x[~numpy.isnan(x)]
添加回答
舉報