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