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/1914#issuecomment-366825366,https://api.github.com/repos/pydata/xarray/issues/1914,366825366,MDEyOklzc3VlQ29tbWVudDM2NjgyNTM2Ng==,6815844,2018-02-19T23:21:05Z,2018-02-19T23:34:58Z,MEMBER,"I am not sure if it is efficient to interact with a cluster, but I often use `MultiIndex` for make a cartesian product, ```python In [1]: import xarray as xr ...: import numpy as np ...: data = xr.DataArray(np.full((3, 4), np.nan), dims=('x', 'y'), ...: coords={'x': [0, 1, 2], 'y': ['a', 'b', 'c', 'd']}) ...: ...: data ...: Out[1]: array([[ nan, nan, nan, nan], [ nan, nan, nan, nan], [ nan, nan, nan, nan]]) Coordinates: * x (x) int64 0 1 2 * y (y) array([ nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]) Coordinates: * xy (xy) MultiIndex - x (xy) int64 0 0 0 0 1 1 1 1 2 2 2 2 - y (xy) object 'a' 'b' 'c' 'd' 'a' 'b' 'c' 'd' 'a' 'b' 'c' 'd' ``` For the above example, `data` becomes 1-dimensional with coordinate `xy`, where `xy` is a product of `x` and `y`. Each entry of `xy` is tuple of 'x' and 'y' value, ```python In [3]: data1[0] Out[3]: array(np.nan) Coordinates: xy object (0, 'a') ``` and we can assign a value for given coordinate values by `loc` method, ```python In [5]: # Assuming we found the result with (1, 'a') is 2.0 ...: data1.loc[(1, 'a'), ] = 2.0 In [6]: data1 Out[6]: array([ nan, nan, nan, nan, 2., nan, nan, nan, nan, nan, nan, nan]) Coordinates: * xy (xy) MultiIndex - x (xy) int64 0 0 0 0 1 1 1 1 2 2 2 2 - y (xy) object 'a' 'b' 'c' 'd' 'a' 'b' 'c' 'd' 'a' 'b' 'c' 'd' ``` Note that we need to access via `data1.loc[(1, 'a'), ]`, rather than `data1.loc[(1, 'a')]` (last comma in the bracket is needed.) EDIT: I modified my previous comment to take the partial assignment into accout.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,297560256