爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
楼主: Tao_Xu

[求助] Python-序列与变量场相关系数计算对缺测值NAN的处理

[复制链接]

新浪微博达人勋

发表于 2020-7-13 20:13:00 | 显示全部楼层
Tao_Xu 发表于 2020-7-12 12:05
最终目的是为了做两组数据(一维和三维数组)的相关系数的空间分布图,我这里遇到的问题是在进行且运算选 ...

三维的和一维的不能直接算相关系数:
https://docs.scipy.org/doc/scipy ... stats.pearsonr.html
官方文档写得很清楚了
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-7-13 21:03:42 | 显示全部楼层
Masterpiece 发表于 2020-7-13 20:13
三维的和一维的不能直接算相关系数:
https://docs.scipy.org/doc/scipy/reference/generated/scipy.sta ...

我最开始参考的代码里面,原作者是改动了一下,所以支持三维和一维之间的相关运算,我利用连续数据也是可计算的;现在主要是有些数据是不连续的,存在NAN值,就运行不下去了;这也是求助的目的,看怎么能忽略或者跳过存在NAN值的部分,看网上一些处理NAN值的方法,插值或者填补,都不太符合需求
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-7-13 21:21:59 | 显示全部楼层
Tao_Xu 发表于 2020-7-13 21:03
我最开始参考的代码里面,原作者是改动了一下,所以支持三维和一维之间的相关运算,我利用连续数据也是可 ...

你一楼的代码是原来的代码么?
原来的代码是空间场逐个逐个点循环去做这个皮尔森相关的。
我楼上已经比较详细的说这个怎么处理Nan了
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-7-13 23:27:49 | 显示全部楼层
Masterpiece 发表于 2020-7-13 21:21
你一楼的代码是原来的代码么?
原来的代码是空间场逐个逐个点循环去做这个皮尔森相关的。
我楼上已经比 ...

一楼的代码就是用原作者的代码做相关计算的,后面的画图部分没放上来;

我也试了您说的处理NAN的方法,因为我做相关计算的数据分别是序列(一维)和nc数据(时间,纬度,经度),前面对两个数组分别挑选True和False的时候都是可以的,然后进行两个数组且运算,就是相乘的时候(notnan=~np.isnan(a) * ~np.isnan(b)),出现错误“operands could not be broadcast together with shapes (31,721,1440) (31,)”;

现在想请教您的是,这种错误情况怎么改?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-7-14 09:11:08 | 显示全部楼层
Tao_Xu 发表于 2020-7-13 23:27
一楼的代码就是用原作者的代码做相关计算的,后面的画图部分没放上来;

我也试了您说的处理NAN的方法 ...

把单个点时间维的数据提取出来,不就解决维数不一致导致无法计算的问题了么?

你现在算法思路比较乱,最好捋一下吧
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-7-17 11:04:59 | 显示全部楼层
你要解决的问题不是给出的代码,而是你要处理的数据存在缺测值这个问题。唯有把格点的时间序列上的缺测值补充了,才不会出错。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-9-11 21:32:43 | 显示全部楼层
没想到竟然看到了我的代码2333,如果是某点全部缺测,可以直接将缺测值全部变为0,结果是不受影响的,如果是某点存在部分缺测的话,使用scipy库的Pearsonr函数是不太行的。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-1-10 22:45:32 | 显示全部楼层
np.nan***(     )????????
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-9-29 20:25:36 | 显示全部楼层
biubiubiu123 发表于 2020-9-11 21:32
没想到竟然看到了我的代码2333,如果是某点全部缺测,可以直接将缺测值全部变为0,结果是不受影响的,如果 ...

大佬,如果部分缺测要如何做呢?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-9-29 23:12:41 | 显示全部楼层
感谢分享!!!
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表