home / github / issue_comments

Menu
  • GraphQL API
  • Search all tables

issue_comments: 348491227

This data as json

html_url issue_url id node_id user created_at updated_at author_association body reactions performed_via_github_app issue
https://github.com/pydata/xarray/issues/1755#issuecomment-348491227 https://api.github.com/repos/pydata/xarray/issues/1755 348491227 MDEyOklzc3VlQ29tbWVudDM0ODQ5MTIyNw== 1197350 2017-12-01T13:12:24Z 2017-12-01T13:12:24Z MEMBER

swap_dims is not an in-place operation http://xarray.pydata.org/en/stable/generated/xarray.Dataset.swap_dims.html

It returns a new dataset with swapped dims. If you want to do it in place, there is a keyword argument for that.

Sent from my iPhone

On Dec 1, 2017, at 7:37 AM, Leevi Annala notifications@github.com wrote:

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:

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.swap_dims({'x':'x2'}) 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:

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.swap_dims({'x':'x2'}) 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 (x) int32 1 2 5 * x2 (x) int32 1 2 3 I have version 0.10.0, the newest on conda-forge.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or mute the thread.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  278453914
Powered by Datasette · Queries took 0.645ms · About: xarray-datasette