爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 1431|回复: 1

[经验总结] Python多维数组拟合/趋势/回归

[复制链接]

新浪微博达人勋

发表于 2023-10-25 16:46:27 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
本帖最后由 XiaoMaFenJu 于 2023-10-25 20:57 编辑

数据size:50*721*1440 (时间*纬度*经度)(nc文件)
需求:求各点的平均变化趋势,即相当于进行一次拟合/回归并求各点拟合/回归系数
问题:一维数据可以使用numpy.polyfit()函数,但其不支持三维及以上数据,而对各点进行循环又耗时过长(25mins)
解决方法:使用xarray.DataArray.polyfit or xarray.Dataset.polyfit
      大白话就是用xarray读nc,选所需变量直接后面加.polyfit()并选dim和deg,如:
  1. ds_pre = xr.open_dataset(filepath)
  2. a = ds_pre['t2m'].polyfit(dim='time',deg=1)
  3. print(a)
  4. print(a['polyfit_coefficients'][0,:,:])
复制代码
解决过程:找到一大碗年糕在22年7月发的帖子:“最方便的python回归分析”中使用的GeoCAT-comp库有ndpolyfit函数,但官方文档已经在22年10月删除了这个函数,并建议使用xarray的polyfit。

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2023-10-25 17:35:47 | 显示全部楼层
本帖最后由 一大碗年糕 于 2023-10-25 17:36 编辑

是的新版的GeoCAT删掉了,目前看多维线性回归可以使用sacpy,效率高代码也简单明了
https://github.com/ZiluM/sacpy
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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