【IDL】数据处理时遇到了NAN怎么办

1、NaN的出现原因

浮点数0除以0。

IDL> print,1./0

         Inf

% Program caused arithmetic error: Floating divide by 0

IDL> print,0./0

        -NaN

2、统计或分析时避开NAN

调用函数是加NaN关键字,几乎所有的IDL统计和分析函数都有此关键字。

IDL> a = findgen(4)

IDL> a[0]='nan'

IDL> a[2]='nan'

IDL> print,a

         NaN     1.00000         NaN     3.00000

IDL> print,mean(a)

         NaN

IDL> print,mean(a,/nan)

     2.00000

IDL> print,total(a)

         NaN

IDL> print,total(a,/nan)

     4.00000

3、移除数组中的NAN
关键在于判断该值的位置,可以利用finite和where函数。

IDL> print,a

         NaN     1.00000         NaN     3.00000

IDL> print,finite(a)

   0   1   0   1

IDL> newa = a[where(finite(a))]

IDL> print,newa

     1.00000     3.00000

IDL> a[where(~finite(a))] = -9999

IDL> print,a

    -9999.00     1.00000    -9999.00     3.00000

 

 

posted @   地理遥感生态网平台  阅读(60)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示