簡體   English   中英

如何在DataArray(xarray)中合並兩個坐標值?

[英]How to combine two coordinate values in a DataArray (xarray)?

我有一個帶有4個坐標的xarray.Dataarrayfp, station, run_date, elnu

尺寸是目前(相同順序):( 123261417

車站的值有“101470”和“108700”,希望把這兩個共同擁有的(尺寸113261*2417 )之后,我有種想重塑他們。 問題是,我無法弄清楚該如何做以及如何解決它們將具有相同坐標的問題(如果我認為它們將具有相同的測站)。

也許我只是找不到在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM