当前位置: 首页 > 知识库问答 >
问题:

从数组中删除nan值

段干兴业
2023-03-14

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

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

如何从x中删除nan值?

共有3个答案

常温文
2023-03-14

试试这个:

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

更多信息,请阅读列表理解。

颜德馨
2023-03-14
filter(lambda v: v==v, x)

适用于列表和numpy数组,因为v=v仅适用于NaN

羊舌光赫
2023-03-14

如果对阵列使用numpy,也可以使用

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

等价地

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

[感谢chbrown添加的速记]

解释

内部函数numpy.isnan返回一个布尔/逻辑数组,该数组x不是数字的地方都有值True。由于我们想要相反的结果,我们使用逻辑not运算符,~得到一个数组,其中Trues是一个有效的数字。

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

 类似资料:
  • 问题内容: 这是我在角度控制器中创建的数组。 然后,我使用push方法将一些值插入到数组中: 这是插入后的数组值: 在插入之后,这里已经向数组添加了额外的东西,但是我需要从数组中删除它。 问题答案: 根据您需要将数组插入数据库的评论,我将假设您将其转换为JSON字符串,然后将其保存到数据库中。如果不正确,请告诉我,我将看看是否可以修改此答案。 在将数组转换为JSON时,有两个选项可用于修改数组。第

  • 问题内容: 我有一个基于不同气象站的数据集, 我想删除具有多个NaN的’stationID’组。例如,如果我键入: 然后,我想删除一个组中至少具有一定数量的NaN(例如30个)的组。据我了解,我不能将dropna(thresh = 10)与groupby一起使用: 那么,用熊猫做到这一点的最佳方法是什么? 问题答案: 你可以做的IIUC 例: 因此,这将滤除具有大于1 nan值的组

  • 问题内容: 我有一个数组: 我想从中删除所有零,以便返回(保持相同的顺序): 有什么比以下方法更简单的方法来删除所有零? 我无法在Arrays类中找到任何方法,并且Google / SO搜索没有给我任何好的答案。 问题答案: 这是在少数情况下,用代码显示比用普通英语解释更容易的情况之一:

  • 问题内容: 有什么快速(好看的)方法可以从Java中的数组中删除元素? 问题答案: 你可以使用的。

  • 问题内容: 文件: 有没有办法从数组中提取特定对象?IE如何从项数组中提取ID为23的整个项对象。 我努力了: 但是我很确定我没有正确使用’pull’。据我了解,pull将从数组中拉出字段,而不是对象。 关于如何将整个对象从数组中拉出的任何想法。 另外,我尝试在mongoose / nodejs中执行此操作,也不确定这种类型的内容是否在mongoose API中,但我找不到它。 问题答案: 尝试.

  • 问题内容: 我需要从满足条件的数组中删除对象,我可以根据条件更新数组的对象,如下所示: 这正在工作 为了删除我正在这样做 但这不起作用,并给出此错误, ElasticsearchIllegalArgumentException [无法执行脚本]; 嵌套:ConcurrentModificationException; 错误:ElasticsearchIllegalArgumentException