home / github / issues

Menu
  • GraphQL API
  • Search all tables

issues: 288567090

This data as json

id node_id number title user state locked assignee milestone comments created_at updated_at closed_at author_association active_lock_reason draft pull_request body reactions performed_via_github_app state_reason repo type
288567090 MDU6SXNzdWUyODg1NjcwOTA= 1831 Slow performance of rolling.reduce 6815844 closed 0     4 2018-01-15T11:44:47Z 2018-03-01T03:39:19Z 2018-03-01T03:39:19Z MEMBER      

Code Sample, a copy-pastable example if possible

```python In [1]: import numpy as np ...: import xarray as xr ...: ...: da = xr.DataArray(np.random.randn(1000, 100), dims=['x', 'y'], ...: coords={'x': np.arange(1000)}) ...:

In [2]: %%timeit ...: da.rolling(x=10).reduce(np.sum) ...: 2.04 s ± 8.25 ms per loop (mean ± std. dev. of 7 runs, 1 loop each) ```

Problem description

In DataArray.rolling, we index by .isel method for every window, constructing huge number of xr.DataArray instances. This is very inefficient.

Of course, we can use bottleneck methods if available, but this provides only a limited functions. (This also limits possible extensions of rolling, such as ND-rolling (#819), window type (#1142), strides (#819).)

I am wondering if we could skip any sanity checks in our DataArray.isel -> Variable.isel path in indexing. Or can we directly construct a single large DataArray instead of a lot of small DataArrays?

{
    "url": "https://api.github.com/repos/pydata/xarray/issues/1831/reactions",
    "total_count": 1,
    "+1": 1,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed 13221727 issue

Links from other tables

  • 0 rows from issues_id in issues_labels
  • 4 rows from issue in issue_comments
Powered by Datasette · Queries took 0.609ms · About: xarray-datasette