为了账号安全,请及时绑定邮箱和手机立即绑定

从数组中删除Nan值

从数组中删除Nan值

不负相思意 2019-11-25 12:46:37
我想弄清楚如何从数组中删除nan值。我的数组看起来像这样:x = [1400, 1500, 1600, nan, nan, nan ,1700] #Not in this exact configuration如何从中删除nan值x?
查看完整描述

4 回答

?
慕码人8056858

TA贡献1803条经验 获得超6个赞

如果您对数组使用numpy,也可以使用


x = x[numpy.logical_not(numpy.isnan(x))]

等效地


x = x[~numpy.isnan(x)]

[感谢chbrown新增了速记]


说明


内部函数numpy.isnan返回一个布尔值/逻辑数组,该数组在True每个地方都x具有非数字值。因为我们希望相反,我们使用逻辑不操作,~以获得与阵列True到处都是这x 是一个有效的数字。


最后,我们使用此逻辑数组索引到原始数组x,仅检索非NaN值。


查看完整回答
反对 回复 2019-11-25
?
ibeautiful

TA贡献1993条经验 获得超5个赞

filter(lambda v: v==v, x)

由于v!= v仅适用于NaN,因此适用于列表和numpy数组


查看完整回答
反对 回复 2019-11-25
?
慕标5832272

TA贡献1966条经验 获得超4个赞

尝试这个:


import math

print [value for value in x if not math.isnan(value)]


查看完整回答
反对 回复 2019-11-25
?
UYOU

TA贡献1878条经验 获得超4个赞

执行以上操作:


x = x[~numpy.isnan(x)]

要么


x = x[numpy.logical_not(numpy.isnan(x))]

我发现重置为相同的变量(x)不会删除实际的nan值,而必须使用其他变量。将其设置为其他变量将删除nans。例如


y = x[~numpy.isnan(x)]


查看完整回答
反对 回复 2019-11-25
  • 4 回答
  • 0 关注
  • 4700 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信