【问题标题】:How to combine two coordinate values in a DataArray (xarray)?如何在 DataArray(xarray)中组合两个坐标值?
【发布时间】:2017-10-10 13:04:24
【问题描述】:

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

目前尺寸(相同顺序):(123261417

Station 有值“101470”和“108700”,想把这两个放在一起得到一个维度(113261*2417),我有点想重塑他们。问题是,我无法弄清楚如何做到这一点以及如何解决他们将拥有相同坐标的问题(如果我表现得像他们将拥有相同的车站)。

也许我只是在 google 上找不到合适的词(不是母语英语)。感谢任何帮助。

【问题讨论】:

    标签: python python-3.x multidimensional-array python-xarray


    【解决方案1】:

    您正在寻找的功能在 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(),将尺寸重新排序为您想要的顺序。

    【讨论】:

      猜你喜欢
      • 2020-07-15
      • 2019-06-28
      • 1970-01-01
      • 1970-01-01
      • 2021-02-02
      • 2020-11-18
      • 1970-01-01
      • 2021-12-21
      • 1970-01-01
      相关资源
      最近更新 更多