[英]How to combine two coordinate values in a DataArray (xarray)?
我有一个带有4个坐标的xarray.Dataarray
: fp, station, run_date, elnu
尺寸是目前(相同顺序):( 1
, 2
, 3261
, 417
)
车站的值有“101470”和“108700”,希望把这两个共同拥有的(尺寸1
, 1
, 3261*2
, 417
)之后,我有种想重塑他们。 问题是,我无法弄清楚该如何做以及如何解决它们将具有相同坐标的问题(如果我认为它们将具有相同的测站)。
也许我只是找不到在Google上搜索的正确单词(不是英语)。 感谢任何帮助。
您正在寻找的功能在xarray的.stack()
方法中。 例:
>>> import xarray
>>> import numpy as np
>>> da = xarray.DataArray(np.zeros((1, 2, 3261, 417)), dims=['fp', 'station', 'run_date', 'elnu'])
>>> da
<xarray.DataArray (fp: 1, station: 2, run_date: 3261, elnu: 417)>
array([[[[ 0., ..., 0.],
...,
[ 0., ..., 0.]],
[[ 0., ..., 0.],
...,
[ 0., ..., 0.]]]])
Dimensions without coordinates: fp, station, run_date, elnu
>>> da.stack(station_date=['station', 'run_date'])
<xarray.DataArray (fp: 1, elnu: 417, station_date: 6522)>
array([[[ 0., 0., ..., 0., 0.],
[ 0., 0., ..., 0., 0.],
...,
[ 0., 0., ..., 0., 0.],
[ 0., 0., ..., 0., 0.]]])
Coordinates:
* station_date (station_date) MultiIndex
- station (station_date) int64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
- run_date (station_date) int64 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...
Dimensions without coordinates: fp, elnu
跟着.expand_dims()
.transpose()
和/或.expand_dims()
将尺寸重新排序为所需的顺序。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.