【问题标题】:How can I relabel an xarry DataArray?如何重新标记 xarray DataArray?
【发布时间】:2021-02-02 20:33:03
【问题描述】:

我有一个如下所示的 DataArray:

<xarray.DataArray (rows: 3, cols: 3)>
array([[11, 12, 13],
       [21, 22, 23],
       [31, 32, 33]])
Coordinates:
  * rows     (rows) <U5 'row1' 'row2' 'row3'
  * cols     (cols) <U4 'col1' 'col2' 'col3'

如何更改标签以获得:

<xarray.DataArray (rows: 3, cols: 3)>
array([[11, 12, 13],
       [21, 22, 23],
       [31, 32, 33]])
Coordinates:
  * rows     (rows) <U5 'rowA' 'rowB' 'rowC'
  * cols     (cols) <U4 'col1' 'col2' 'col3'

我尝试使用test.rename({"row1":"rowA", "row2":"rowB", "row3":"rowC"}),但它给了我一个ValueError:

ValueError: cannot rename 'row1' because it is not a variable or dimension in this dataset

我认为重命名只是用于维度名称,但如果是这种情况,那么文档并没有明确说明根本

【问题讨论】:

    标签: python-3.x python-xarray


    【解决方案1】:

    这可能是目前最简单的方法。目前它不如 pandas 的选项好,我们有兴趣让它更容易。特别是,我们非常愿意接受 PR,根据您的反馈使文档更加清晰。

    In [8]: da = xr.DataArray([1,2,3], coords=dict(a=list('xyz')), dims=['a'])
        
    In [10]: da
    Out[10]:
    <xarray.DataArray (a: 3)>
    array([1, 2, 3])
    Coordinates:
      * a        (a) <U1 'x' 'y' 'z'
    
    In [9]: da.to_dataset('a').rename(x='x2').to_array('a')
    Out[9]:
    <xarray.DataArray (a: 3)>
    array([1, 2, 3])
    Coordinates:
      * a        (a) <U2 'x2' 'y' 'z'
    

    【讨论】:

    • 它肯定比我的工作要好,所以我会接受它。原谅我的无知,什么是公关?这像是一个改进请求吗?
    • PR 是一个拉取请求!任何人都可以编辑 xarray 之类的库的文档(或代码)的一种方式。 guides.github.com/activities/hello-world
    猜你喜欢
    • 2020-07-15
    • 2019-06-28
    • 2017-10-10
    • 2019-01-18
    • 2020-11-18
    • 1970-01-01
    • 1970-01-01
    • 2021-07-20
    • 2017-01-30
    相关资源
    最近更新 更多