Expand dimensions xarray

前端 未结 2 1999
青春惊慌失措
青春惊慌失措 2021-01-19 05:07

Is there an existing method or approach to expand the dimensions (and coordinates) of an xarray.DataArray object?

I would like to obtain something simil

相关标签:
2条回答
  • 2021-01-19 05:48

    I agree that some sort of method for doing this would be useful. It does not currently exist directly in xarray, but I would encourage you to file an issue on GitHub to discuss API for a new feature and/or make a pull request implementing it.

    The new xarray.broadcast function contains some related functionality that may suffice for this purposes:

    import xarray as xr
    import numpy as np
    data = xr.DataArray([1, 2, 3], dims='x')
    other = xr.DataArray(np.zeros(4), coords=[('y', list('abcd'))])
    data2, other2 = xr.broadcast(data, other)
    print(data2)
    # <xarray.DataArray (x: 3, y: 4)>
    # array([[1, 1, 1, 1],
    #       [2, 2, 2, 2],
    #       [3, 3, 3, 3]])
    # Coordinates:
    #   * x        (x) int64 0 1 2
    #   * y        (y) |S1 'a' 'b' 'c' 'd'
    
    0 讨论(0)
  • 2021-01-19 05:55

    In xarray v0.10.0, I use a combination of assign_coords() and expand_dims() to add a new dimension and coordinate variable.

    For example:

    import xarray as xr
    import numpy as np
    data = xr.DataArray([1, 2, 3], dims='x', coords={'x': [10, 20, 30]})
    data_newcoord = data.assign_coords(y='coord_value')
    data_expanded = data_newcoord.expand_dims('y')
    print(data_expanded)
    # <xarray.DataArray (y: 1, x: 3)>
    # array([[1, 2, 3]])
    # Coordinates:
    #   * x        (x) int64 10 20 30
    #   * y        (y) <U11 'coord_value'
    
    0 讨论(0)
提交回复
热议问题