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/4197#issuecomment-653752196,https://api.github.com/repos/pydata/xarray/issues/4197,653752196,MDEyOklzc3VlQ29tbWVudDY1Mzc1MjE5Ng==,6815844,2020-07-04T11:05:49Z,2020-07-04T11:05:49Z,MEMBER,"@cwerner ```python In [40]: idx = (da.count('y').cumsum() != 0) * (da.count('y')[::-1].cumsum()[::- ...: 1] != 0) In [42]: da.isel(x=idx) Out[42]: array([[nan, 0., 2., nan], [nan, nan, nan, nan], [nan, 2., 0., nan]]) Dimensions without coordinates: x, y ``` Maybe this works, but I have no cleaner solution.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,650549352 https://github.com/pydata/xarray/issues/4197#issuecomment-653731489,https://api.github.com/repos/pydata/xarray/issues/4197,653731489,MDEyOklzc3VlQ29tbWVudDY1MzczMTQ4OQ==,1217238,2020-07-04T07:04:51Z,2020-07-04T07:04:51Z,MEMBER,"Another way to write this currently would be with `where`: `array.where(array.notnull(), drop=True)`","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,650549352 https://github.com/pydata/xarray/issues/4197#issuecomment-653729887,https://api.github.com/repos/pydata/xarray/issues/4197,653729887,MDEyOklzc3VlQ29tbWVudDY1MzcyOTg4Nw==,6815844,2020-07-04T06:47:04Z,2020-07-04T06:47:04Z,MEMBER,"@keewis I think it is close to `da.dropna(how='all')` ```python In [12]: da.dropna('x', how='all').dropna('y', how='all') Out[12]: array([[0., 2.], [2., 0.]]) Dimensions without coordinates: x, y ``` I think supporting multiple dimensions for `dropna` is totally in our scope. Currently, `dropna` only works with a single dimension and `da.dropna(how='all')` does not work. @cwerner Is it close to your example? If you don't want to drop all nans but only those located at the edges, the above example does not work. ","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,650549352 https://github.com/pydata/xarray/issues/4197#issuecomment-653578137,https://api.github.com/repos/pydata/xarray/issues/4197,653578137,MDEyOklzc3VlQ29tbWVudDY1MzU3ODEzNw==,14808389,2020-07-03T14:38:57Z,2020-07-03T14:41:16Z,MEMBER,"you should be able to emulate that using: ```python In [2]: data = np.array([ ...: [np.nan, np.nan, np.nan, np.nan], ...: [np.nan, 0, 2, np.nan], ...: [np.nan, 2, 0, np.nan], ...: [np.nan, np.nan, np.nan, np.nan], ...: ]) ...: da = xr.DataArray(data, dims=(""x"", ""y"")) In [3]: def shrink(arr): ...: notnull = da.notnull() ...: indexers = { ...: dim: notnull.any(dim=set(da.dims) - set([dim])) ...: for dim in da.dims ...: } ...: return arr.sel(**indexers) ...: In [4]: da Out[4]: array([[nan, nan, nan, nan], [nan, 0., 2., nan], [nan, 2., 0., nan], [nan, nan, nan, nan]]) Dimensions without coordinates: x, y In [5]: shrink(da) Out[5]: array([[0., 2.], [2., 0.]]) Dimensions without coordinates: x, y ``` @pydata/xarray: is this common enough to add it to the API? ","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,650549352