如何在数据数组(xarray)中组合两个坐标值?

2024-09-30 06:20:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个带有4个坐标的xarray.Dataarrayfp, station, run_date, elnu

当前维度(顺序相同):(123261417

Station有值“101470”和“108700”,想把这两个放在一起,有一个维度(113261*2417)之后,我有点想重塑它们。问题是,我不知道如何做到这一点,以及如何解决这样一个问题,即他们会有相同的坐标(如果我表现得像他们有相同的工作站)。在

也许我只是在谷歌上找不到合适的词(不是英语母语)。谢谢你的帮助。在


Tags: rundate顺序xarraystation重塑fp母语
1条回答
网友
1楼 · 发布于 2024-09-30 06:20:51

您要寻找的功能在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

接着使用.transpose()和/或.expand_dims()将维度重新排序为所需的顺序。在

相关问题 更多 >

    热门问题