从数组中删除Nan值

我想弄清楚如何从数组中删除nan值。我的数组看起来像这样:


x = [1400, 1500, 1600, nan, nan, nan ,1700] #Not in this exact configuration

如何从中删除nan值x?


不负相思意
浏览 4701回答 4
4回答

慕码人8056858

如果您对数组使用numpy,也可以使用x = x[numpy.logical_not(numpy.isnan(x))]等效地x = x[~numpy.isnan(x)][感谢chbrown新增了速记]说明内部函数numpy.isnan返回一个布尔值/逻辑数组,该数组在True每个地方都x具有非数字值。因为我们希望相反,我们使用逻辑不操作,~以获得与阵列True到处都是这x 是一个有效的数字。最后,我们使用此逻辑数组索引到原始数组x,仅检索非NaN值。

ibeautiful

filter(lambda v: v==v, x)由于v!= v仅适用于NaN,因此适用于列表和numpy数组

慕标5832272

尝试这个:import mathprint [value for value in x if not math.isnan(value)]

UYOU

执行以上操作:x = x[~numpy.isnan(x)]要么x = x[numpy.logical_not(numpy.isnan(x))]我发现重置为相同的变量(x)不会删除实际的nan值,而必须使用其他变量。将其设置为其他变量将删除nans。例如y = x[~numpy.isnan(x)]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python