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/1053#issuecomment-505992633,https://api.github.com/repos/pydata/xarray/issues/1053,505992633,MDEyOklzc3VlQ29tbWVudDUwNTk5MjYzMw==,5635139,2019-06-26T18:28:31Z,2019-06-26T18:28:31Z,MEMBER,Closed by #2987,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,184238633
https://github.com/pydata/xarray/issues/1053#issuecomment-405645739,https://api.github.com/repos/pydata/xarray/issues/1053,405645739,MDEyOklzc3VlQ29tbWVudDQwNTY0NTczOQ==,1217238,2018-07-17T16:32:45Z,2018-07-17T16:32:45Z,MEMBER,"Yes, we could definitely make `@` between two xarray objects equivalent to `xarray.dot()`.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,184238633
https://github.com/pydata/xarray/issues/1053#issuecomment-290954513,https://api.github.com/repos/pydata/xarray/issues/1053,290954513,MDEyOklzc3VlQ29tbWVudDI5MDk1NDUxMw==,1217238,2017-04-01T23:40:06Z,2017-04-01T23:40:06Z,MEMBER,"> My intuition was that we use @ on a DataArray in cases where DataArray.values @ numpy.ndarray or numpy.ndarray @ DataArray.values would work.
Suppose `data_array` is a `DataArray` with dimensions `['x', 'y']` and `numpy_array` is a numpy.ndarray with a compatible shape. What should `data_array @ numpy_array` look like? The first dimension should be labeled `x`, but the second dimension doesn't have a name, so we'd need to come up with one somehow (every dimension in an `DataArray` must have a name).
> However, it appears that xarray may do some inference based aligning dimensions/coordinates... and that I need to understand this process a bit more.
Indeed, see http://xarray.pydata.org/en/stable/computation.html#broadcasting-by-dimension-name","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,184238633
https://github.com/pydata/xarray/issues/1053#issuecomment-290948916,https://api.github.com/repos/pydata/xarray/issues/1053,290948916,MDEyOklzc3VlQ29tbWVudDI5MDk0ODkxNg==,1217238,2017-04-01T21:40:04Z,2017-04-01T21:40:04Z,MEMBER,"> More specifically, I'd like to be able to do matrix multiplication between numpy ndarrays / matrices, scipy sparse matrices, and xarray DataArrays.
I'm intrigued, but how would this work? `data_array + numpy_array` yields a result with well-defined labels as long as `numpy_array` broadcasts against `data_array.data`, but `data_array @ numpy_array` does not if `numpy_array` has 2 or more dimensions.
I guess we could prohibit `@` with non-vector other arguments, but I still am concerned that the suggested meaning of `@` per [PEP 465](http://legacy.python.org/dev/peps/pep-0465/) and numpy depends on the order of array dimensions. Basically, the last dimension of the left-hand-side argument should be matched against the second-to-last (or last, for 1D) dimension of the right-hand-side for the tensor contraction. In xarray terms, we could match the last dimension of the left-hand-side with any matching dimensions (by name) of the right-hand-side, but it's still messily inconsistent with other xarray operations, which are generally agnostic to to dimension order.
It also gets messy on `Dataset` objects, because the order of dimensions now becomes a bit more ambiguous: there's the order of dimensions on the `Dataset` itself, and the order on each `DataArray` in the dataset.
For these reasons, I'm leaning towards thinking that `@` should be defined differently for xarray, and work like tensordot over all matching dimensions.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,184238633
https://github.com/pydata/xarray/issues/1053#issuecomment-255126864,https://api.github.com/repos/pydata/xarray/issues/1053,255126864,MDEyOklzc3VlQ29tbWVudDI1NTEyNjg2NA==,1217238,2016-10-20T14:44:58Z,2016-10-20T14:44:58Z,MEMBER,"For xarray, probably the right choice is for `@` to be an alias for `.dot()`:
http://xarray.pydata.org/en/stable/generated/xarray.DataArray.dot.html
The broadcasting semantics of `np.matmul` don't quite make sense because it broadcasts based on axis position, not name.
","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,184238633