【问题标题】:Join along a non-coordinate dimension in xarray沿 xarray 中的非坐标维度连接
【发布时间】:2016-10-25 09:02:56
【问题描述】:

我正在尝试将一组值从一个DataArray 连接到另一个。他们应该基于第一个的非维度坐标加入。我认为这应该很容易,但我似乎无法解决。

第一个数组:

In [4]: primary=xr.DataArray(np.random.rand(4), dims=list('a'))
   ...: primary.coords['group'] = (('a',), [0,0,1,1])
   ...: primary
   ...: 
Out[4]: 
<xarray.DataArray (a: 4)>
array([ 0.27772841,  0.06126117,  0.51753086,  0.35994987])
Coordinates:
  * a        (a) int64 0 1 2 3
    group    (a) int64 0 0 1 1

第二个数组:

In [5]: secondary=xr.DataArray(np.random.rand(2), dims=['group'], coords={'group': [0,1]})
   ...: secondary
   ...: 
Out[5]: 
<xarray.DataArray (group: 2)>
array([ 0.75944366,  0.90325489])
Coordinates:
  * group    (group) int64 0 1

我怎样才能做到primary - secondary 使得数组沿着group 维度连接?

谢谢

【问题讨论】:

    标签: python-xarray


    【解决方案1】:

    您需要groupby 第一个但不要对其应用聚合:

    In [6]: primary.groupby('group') - secondary
    Out[6]: 
    <xarray.DataArray (a: 4)>
    array([-0.48171525, -0.69818249, -0.38572403, -0.54330502])
    Coordinates:
      * a        (a) int64 0 1 2 3
        group    (a) int64 0 0 1 1
    

    【讨论】:

    • 我很高兴你能自己解决这个问题:)。
    猜你喜欢
    • 2020-06-08
    • 1970-01-01
    • 2019-06-28
    • 2018-01-11
    • 1970-01-01
    • 2019-07-07
    • 1970-01-01
    • 2021-12-12
    • 2021-12-03
    相关资源
    最近更新 更多