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/3957#issuecomment-611302006,https://api.github.com/repos/pydata/xarray/issues/3957,611302006,MDEyOklzc3VlQ29tbWVudDYxMTMwMjAwNg==,34353851,2020-04-09T03:04:53Z,2020-04-09T03:04:53Z,NONE,"Yes, but with a lot of information, dask is the only option, and working
well with the index.
https://github.com/dask/dask/issues/958
El jue., 9 abr. 2020 a las 2:54, Xin Zhang ()
escribió:
> @JavierRuano Nice suggestion! I combine
> them to dataset, convert it to dataframe and then sort_values. Finally,
> convert the dataframe back to dataset:
>
> ds = cld.to_dataset(name='cld')
> ds['pair'] = pair
>
> df = ds.to_dataframe()
> new_ds = df.sort_values(by='cld').to_xarray().transpose()
>
> —
> You are receiving this because you were mentioned.
> Reply to this email directly, view it on GitHub
> , or
> unsubscribe
>
> .
>
","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,596606599
https://github.com/pydata/xarray/issues/3957#issuecomment-611295039,https://api.github.com/repos/pydata/xarray/issues/3957,611295039,MDEyOklzc3VlQ29tbWVudDYxMTI5NTAzOQ==,34353851,2020-04-09T02:36:56Z,2020-04-09T02:36:56Z,NONE,"You could access directly to data as ndarray and you could transform
dataarray into a dataframe of pandas. Pandas has sort_values.
You searched sorting values according z, it is shown in z index.
With more dataArray you could read about Dataset concept...
but i dont develop xarray, i am only user of that module, perhaps you
search another type of answer.
http://xarray.pydata.org/en/stable/generated/xarray.Dataset.sortby.html
according to values of 1-D dataarrays that share dimension with calling
object.
El jue., 9 abr. 2020 4:22, Xin Zhang escribió:
> @JavierRuano Thank you very much. This
> example is a special case. If the order of z is different for each x and y,
> do we need to create a tmp DataArray to save the result of looping x and y
> ?
>
> —
> You are receiving this because you were mentioned.
> Reply to this email directly, view it on GitHub
> , or
> unsubscribe
>
> .
>
","{""total_count"": 1, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,596606599
https://github.com/pydata/xarray/issues/3957#issuecomment-611047964,https://api.github.com/repos/pydata/xarray/issues/3957,611047964,MDEyOklzc3VlQ29tbWVudDYxMTA0Nzk2NA==,34353851,2020-04-08T16:08:00Z,2020-04-08T16:08:00Z,NONE,"cld.reindex(z=cld[:,0,0].sortby(cld[:,0,0]).z)
with this solution [0] [1]
array([[[ 0. , 1. , 2. , 3. ],
[ 4. , 5. , 6. , 7. ]],
[[ 1. , 2.5, 4. , 5.5],
[ 7. , 8.5, 10. , 11.5]],
[[ 8. , 9. , 10. , 11. ],
[12. , 13. , 14. , 15. ]],
[[16. , 17. , 18. , 19. ],
[20. , 21. , 22. , 23. ]],
[[24. , 25. , 26. , 27. ],
[28. , 29. , 30. , 31. ]]])
Coordinates:
* z (z) int64 0 4 1 2 3
Dimensions without coordinates: y, x
[0] https://stackoverflow.com/questions/41077393/how-to-sort-the-index-of-a-xarray-dataset-dataarray
[1] https://github.com/pydata/xarray/issues/967
El mié., 8 abr. 2020 a las 14:06, Xin Zhang ()
escribió:
> .sortby() only supports sorting DataArray by coords values. I'm trying to
> sort one DataArray (cld) by data values along one dim and sort another
> DataArray (pair) by the same order.
> MCVE Code Sample
>
> import xarray as xrimport numpy as np
>
> x = 4
> y = 2
> z = 4
> data = np.arange(x*y*z).reshape(z, y, x)
> # 3d array with coords
> cld_1 = xr.DataArray(data, dims=['z', 'y', 'x'], coords={'z': np.arange(z)})
> # 2d array without coords
> cld_2 = xr.DataArray(np.arange(x*y).reshape(y, x)*1.5+1, dims=['y', 'x'])
> # expand 2d to 3d
> cld_2 = cld_2.expand_dims(z=[4])
> # concat
> cld = xr.concat([cld_1, cld_2], dim='z')
> # paired array
> pair = cld.copy(data=np.arange(x*y*(z+1)).reshape(z+1, y, x))
> print(cld)print(pair)
>
> Output
>
>
> array([[[ 0. , 1. , 2. , 3. ],
> [ 4. , 5. , 6. , 7. ]],
>
> [[ 8. , 9. , 10. , 11. ],
> [12. , 13. , 14. , 15. ]],
>
> [[16. , 17. , 18. , 19. ],
> [20. , 21. , 22. , 23. ]],
>
> [[24. , 25. , 26. , 27. ],
> [28. , 29. , 30. , 31. ]],
>
> [[ 1. , 2.5, 4. , 5.5],
> [ 7. , 8.5, 10. , 11.5]]])
> Coordinates:
> * z (z) int64 0 1 2 3 4
> Dimensions without coordinates: y, x
>
>
> array([[[ 0, 1, 2, 3],
> [ 4, 5, 6, 7]],
>
> [[ 8, 9, 10, 11],
> [12, 13, 14, 15]],
>
> [[16, 17, 18, 19],
> [20, 21, 22, 23]],
>
> [[24, 25, 26, 27],
> [28, 29, 30, 31]],
>
> [[32, 33, 34, 35],
> [36, 37, 38, 39]]])
> Coordinates:
> * z (z) int64 0 1 2 3 4
> Dimensions without coordinates: y, x
>
> Problem Description
>
> I've tried argsort(): cld.argsort(axis=0), but the result is wrong:
>
>
> array([[[0, 0, 0, 0],
> [0, 0, 0, 0]],
>
> [[4, 4, 4, 4],
> [4, 4, 4, 4]],
>
> [[1, 1, 1, 1],
> [1, 1, 1, 1]],
>
> [[2, 2, 2, 2],
> [2, 2, 2, 2]],
>
> [[3, 3, 3, 3],
> [3, 3, 3, 3]]], dtype=int64)
> Coordinates:
> * z (z) int64 0 1 2 3 4
> Dimensions without coordinates: y, x
>
> —
> You are receiving this because you are subscribed to this thread.
> Reply to this email directly, view it on GitHub
> , or unsubscribe
>
> .
>
","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,596606599