home / github / issues

Menu
  • Search all tables
  • GraphQL API

issues: 278453914

This data as json

id node_id number title user state locked assignee milestone comments created_at updated_at closed_at author_association active_lock_reason draft pull_request body reactions performed_via_github_app state_reason repo type
278453914 MDU6SXNzdWUyNzg0NTM5MTQ= 1755 Is there a reason for why DataArray.swap_dims() cannot be done in place like Dataset.swap_dims? 25015426 closed 0     8 2017-12-01T12:37:39Z 2017-12-02T20:09:17Z 2017-12-02T10:13:39Z CONTRIBUTOR      

Problem description

This is a problem if I want to swap_dims in DataArray Accessor.

Code Sample

This is what I'm forced to do: ```python import xarray as xr import numpy as np @xr.register_dataarray_accessor('testing') class TestAccessor(object): def init(self, xarray_obj): self._obj = xarray_obj def the_problem(self): self._obj = self._obj.swap_dims({'x':'x2'}) print(self._obj)

arr = np.random.rand(4,3,2) cube = xr.DataArray(arr, dims=['ya', 'x', 'y'], coords={'y':[1,3], 'ya':[1,2,3,6], 'x':[1,2,5]}) cube.coords['x2'] = ('x', [1,2,3]) cube.testing.the_problem() print(cube) this prints: <xarray.DataArray (ya: 4, x2: 3, y: 2)> array([[[ 0.659583, 0.167555], [ 0.357974, 0.46081 ], [ 0.85115 , 0.845257]],

   [[ 0.280308,  0.777399],
    [ 0.512527,  0.542036],
    [ 0.838603,  0.799414]],

   [[ 0.572031,  0.350464],
    [ 0.205219,  0.812232],
    [ 0.687778,  0.984928]],

   [[ 0.803385,  0.63981 ],
    [ 0.089909,  0.499857],
    [ 0.25266 ,  0.967909]]])

Coordinates: * y (y) int32 1 3 * ya (ya) int32 1 2 3 6 x (x2) int32 1 2 5 * x2 (x2) int32 1 2 3 <xarray.DataArray (ya: 4, x: 3, y: 2)> array([[[ 0.659583, 0.167555], [ 0.357974, 0.46081 ], [ 0.85115 , 0.845257]],

   [[ 0.280308,  0.777399],
    [ 0.512527,  0.542036],
    [ 0.838603,  0.799414]],

   [[ 0.572031,  0.350464],
    [ 0.205219,  0.812232],
    [ 0.687778,  0.984928]],

   [[ 0.803385,  0.63981 ],
    [ 0.089909,  0.499857],
    [ 0.25266 ,  0.967909]]])

Coordinates: * y (y) int32 1 3 * ya (ya) int32 1 2 3 6 * x (x) int32 1 2 5 x2 (x) int32 1 2 3 ``` where the two xarrays are clearly different.

I would want to do: ```python import xarray as xr import numpy as np @xr.register_dataarray_accessor('testing') class TestAccessor(object): def init(self, xarray_obj): self._obj = xarray_obj def the_problem(self): self._obj.swap_dims({'x':'x2'}, inplace = True) print(self._obj)

arr = np.random.rand(4,3,2) cube = xr.DataArray(arr, dims=['ya', 'x', 'y'], coords={'y':[1,3], 'ya':[1,2,3,6], 'x':[1,2,5]}) cube.coords['x2'] = ('x', [1,2,3]) cube.testing.the_problem() print(cube) this would keep the two xarrays the same, as they should be: <xarray.DataArray (ya: 4, x2: 3, y: 2)> array([[[ 0.659583, 0.167555], [ 0.357974, 0.46081 ], [ 0.85115 , 0.845257]],

   [[ 0.280308,  0.777399],
    [ 0.512527,  0.542036],
    [ 0.838603,  0.799414]],

   [[ 0.572031,  0.350464],
    [ 0.205219,  0.812232],
    [ 0.687778,  0.984928]],

   [[ 0.803385,  0.63981 ],
    [ 0.089909,  0.499857],
    [ 0.25266 ,  0.967909]]])

Coordinates: * y (y) int32 1 3 * ya (ya) int32 1 2 3 6 x (x2) int32 1 2 5 * x2 (x2) int32 1 2 3 <xarray.DataArray (ya: 4, x: 3, y: 2)> array([[[ 0.659583, 0.167555], [ 0.357974, 0.46081 ], [ 0.85115 , 0.845257]],

   [[ 0.280308,  0.777399],
    [ 0.512527,  0.542036],
    [ 0.838603,  0.799414]],

   [[ 0.572031,  0.350464],
    [ 0.205219,  0.812232],
    [ 0.687778,  0.984928]],

   [[ 0.803385,  0.63981 ],
    [ 0.089909,  0.499857],
    [ 0.25266 ,  0.967909]]])

Coordinates: * y (y) int32 1 3 * ya (ya) int32 1 2 3 6 x (x2) int32 1 2 5 * x2 (x2) int32 1 2 3 ```

I have version 0.10.0, the newest on conda-forge.

{
    "url": "https://api.github.com/repos/pydata/xarray/issues/1755/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed 13221727 issue

Links from other tables

  • 0 rows from issues_id in issues_labels
  • 8 rows from issue in issue_comments
Powered by Datasette · Queries took 0.798ms · About: xarray-datasette