我想弄清楚如何从数组中删除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值。
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)]
添加回答
举报
0/150
提交
取消