python - 在 xarray.concat 中使用循环来选择不同的时间步长
问题描述
我是 python 新手,我正在寻找有关循环结构的帮助。专门使用循环结构来防止函数行过长。我创建了一个包含北欧年度季节性降水数据的数据集。我只对 1950-2018 年的夏季数据感兴趣
print (PrNEU)
<xarray.DataArray 'rr' (time: 273, latitude: 201, longitude: 464)>
Coordinates:
* latitude (latitude) float64 25.38 25.62 25.88 26.12 ... 74.88 75.12 75.38
* longitude (longitude) float64 -40.38 -40.12 -39.88 ... 74.88 75.12 75.38
* time (time) datetime64[ns] 1950-06-01 1950-09-01 ... 2018-06-01
NEW = xr.concat([PrNEU[0,:,:],PrNEU[4,:,:],PrNEU[8,:,:],dim='time')
Print (NEW)
<xarray.DataArray 'rr' (time: 3, latitude: 88, longitude: 200)>
Coordinates:
* longitude (longitude) float64 -9.875 -9.625 -9.375 ... 39.38 39.62 39.88
* latitude (latitude) float64 49.62 49.88 50.12 50.38 ... 70.88 71.12 71.38
* time (time) datetime64[ns] 1950-06-01 1951-06-01 1952-06-01
我可以手动写下所有时间步长,但必须有更简单的方法来创建一个新数据集,其中仅包含 1950 年至 2018 年的年度夏季数据
有关如何组织循环的任何帮助都会有所帮助。谢谢
解决方案
使用它非常方便.sel
:
# selecting summer (June) every year
mon = PrNEU.time.dt.month == 6
NEW = PrNEU.sel(time=mon)
然后你可以对每年的夏季数据做一些进一步的分析NEW
。
推荐阅读
- r - 如何添加 abline,无需太多编程?
- usb - 我的 USB 鼠标文件存储在哪里以及如何对其进行逆向工程?
- jquery - 从网页 A 向网页 B 推送更新
- python - 无法使用(python)硒访问不同的页面与直接访问
- c - 值类型“String*”不能分配给实体类型“Course”
- javascript - 运算符“>”除了“大于”之外还有什么含义?
- swift - 如何避免在 Swift 中强制转换(as!)
- java - Hadoop 链接作业错误预期 org.apache.hadoop.io.DoubleWritable,收到 org.apache.hadoop.io.LongWritable
- android - 在 Kotlin 库中的线程上运行网络操作
- visual-studio - 从 Visual Studio 2019 发布应用程序时需要包含 SQL Server 2017 Express 作为先决条件