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/pull/4219#issuecomment-670819822,https://api.github.com/repos/pydata/xarray/issues/4219,670819822,MDEyOklzc3VlQ29tbWVudDY3MDgxOTgyMg==,5635139,2020-08-08T04:02:09Z,2020-08-08T04:02:09Z,MEMBER,"Great! Thanks @fujiisoup !
Ready to go from my POV ","{""total_count"": 1, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,655389649
https://github.com/pydata/xarray/pull/4219#issuecomment-670594286,https://api.github.com/repos/pydata/xarray/issues/4219,670594286,MDEyOklzc3VlQ29tbWVudDY3MDU5NDI4Ng==,5635139,2020-08-07T16:13:28Z,2020-08-07T16:13:28Z,MEMBER,"I'm still a bit confused. How does the ""roll over each dimension in turn"" approach equal the ""roll over both dimension together"" approach with a function like std? Here's a proposed counter example:
```python
import xarray as xr
import numpy as np
da = xr.DataArray(np.asarray([[0,10,0],[0,10,0], [0,10,0]]), dims=list('xy'))
print(da)
array([[ 0, 10, 0],
[ 0, 10, 0],
[ 0, 10, 0]])
Dimensions without coordinates: x, y
x_std = da.rolling(dict(x=2)).std()
print(x_std)
array([[nan, nan, nan],
[ 0., 0., 0.],
[ 0., 0., 0.]])
Dimensions without coordinates: x, y
x_then_y_std = x_std.rolling(dict(y=2)).std()
print(x_then_y_std)
array([[nan, nan, nan],
[nan, 0., 0.],
[nan, 0., 0.]])
Dimensions without coordinates: x, y
combined_std = da.rolling(dict(x=2, y=2)).std()
print(combined_std)
array([[nan, nan, nan],
[nan, 5., 5.],
[nan, 5., 5.]])
Dimensions without coordinates: x, y
```","{""total_count"": 1, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,655389649
https://github.com/pydata/xarray/pull/4219#issuecomment-657257847,https://api.github.com/repos/pydata/xarray/issues/4219,657257847,MDEyOklzc3VlQ29tbWVudDY1NzI1Nzg0Nw==,5635139,2020-07-12T18:23:19Z,2020-07-12T18:23:28Z,MEMBER,"Re the API, I think the dict is probably the best option, although it does complicate as the arguments become differently typed depending on one vs multiple dimensions.
One alternative is to allow fluent args, like:
```python
(
da
.rolling(x=3, center=True)
.rolling(y=5, min_periods=2)
.mean()
)
```
...but does that then seem like the second `rolling` is operating on the _result_ of the first?","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,655389649
https://github.com/pydata/xarray/pull/4219#issuecomment-657257600,https://api.github.com/repos/pydata/xarray/issues/4219,657257600,MDEyOklzc3VlQ29tbWVudDY1NzI1NzYwMA==,5635139,2020-07-12T18:20:38Z,2020-07-12T18:20:38Z,MEMBER,"This looks very promising; I'm surprised it was possible without more code. I'm being slow, but where is the nd-rolling algo? I had thought bottleneck didn't support more than one dimension? https://bottleneck.readthedocs.io/en/latest/bottleneck.move.html, and that we'd have to implement our own in numbagg (which would be very possible)","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,655389649