如何从NumPy数组中移除NaN值?附示例与预期输出
移除列表中的NaN值实现方案
可以实现,直接通过列表推导式结合NaN判断逻辑就能得到你想要的结果,具体代码如下:
处理代码
import math # 原始含NaN的列表 my_list=[[ 0., 40. , float('nan')], [60. , 0. , float('nan')], [ float('nan') , float('nan') , float('nan')]] # 过滤NaN并移除全空的子列表 processed_list = [ [num for num in sublist if not math.isnan(num)] for sublist in my_list if any(not math.isnan(num) for num in sublist) ] print(processed_list)
输出结果
[[0.0, 40.0], [60.0, 0.0]]
逻辑说明
- 内层推导式
[num for num in sublist if not math.isnan(num)]:遍历每个子列表,剔除其中的NaN元素; - 外层条件
if any(not math.isnan(num) for num in sublist):过滤掉所有元素都是NaN的子列表,避免处理后留下空列表。
内容的提问来源于stack exchange,提问作者Jack
相关产品推荐
相关产品推荐

