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/2227#issuecomment-1464180874,https://api.github.com/repos/pydata/xarray/issues/2227,1464180874,IC_kwDOAMm_X85XRaCK,1217238,2023-03-10T18:04:23Z,2023-03-10T18:04:23Z,MEMBER,"@dschwoerer are you sure that you are actually calculating the same thing in both cases? What _exactly_ do the values of `slc[d]` look like? I would test thing on smaller inputs to verify. My guess is that you are inadvertently calculating something different, recalling that Xarray's broadcasting rules differ slightly from NumPy's.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,331668890 https://github.com/pydata/xarray/issues/2227#issuecomment-533193480,https://api.github.com/repos/pydata/xarray/issues/2227,533193480,MDEyOklzc3VlQ29tbWVudDUzMzE5MzQ4MA==,1217238,2019-09-19T15:49:24Z,2019-09-19T15:49:24Z,MEMBER,"Yes, align checks `index.equals(other)` first, which has a shortcut for the same object. The real mystery here is why `time_filter.indexes['time']` and `ds.indexes['time']` are not the same object. I guess this is likely due to lazy initialization of indexes, and should be fixed eventually by the explicit indexes refactor.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,331668890 https://github.com/pydata/xarray/issues/2227#issuecomment-532804542,https://api.github.com/repos/pydata/xarray/issues/2227,532804542,MDEyOklzc3VlQ29tbWVudDUzMjgwNDU0Mg==,1217238,2019-09-18T18:17:22Z,2019-09-18T18:17:22Z,MEMBER,"https://github.com/pydata/xarray/pull/3319 gives us about a 2x performance boost. It could likely be much faster, but at least this fixes the regression.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,331668890 https://github.com/pydata/xarray/issues/2227#issuecomment-532787342,https://api.github.com/repos/pydata/xarray/issues/2227,532787342,MDEyOklzc3VlQ29tbWVudDUzMjc4NzM0Mg==,1217238,2019-09-18T17:33:38Z,2019-09-18T17:33:38Z,MEMBER,"Yes, I'm seeing similar numbers, about 10x slower indexing in a DataArray. This seems to have gotten slower over time. It would be good to track this down and add a benchmark!","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,331668890 https://github.com/pydata/xarray/issues/2227#issuecomment-424549023,https://api.github.com/repos/pydata/xarray/issues/2227,424549023,MDEyOklzc3VlQ29tbWVudDQyNDU0OTAyMw==,1217238,2018-09-26T00:54:24Z,2018-09-26T00:54:24Z,MEMBER,@WeatherGod does adding something like `da = da.chunk({'time': 1})` reproduce this with your example?,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,331668890 https://github.com/pydata/xarray/issues/2227#issuecomment-396725591,https://api.github.com/repos/pydata/xarray/issues/2227,396725591,MDEyOklzc3VlQ29tbWVudDM5NjcyNTU5MQ==,1217238,2018-06-12T20:38:47Z,2018-06-12T20:38:47Z,MEMBER,"My measurements: ``` >>> %timeit ds.a.isel(time=time_filter) 1 loop, best of 3: 906 ms per loop >>> %timeit ds.a.isel(time=time_filter.values) 1 loop, best of 3: 447 ms per loop >>> %timeit ds.a.values[time_filter] 10 loops, best of 3: 169 ms per loop ``` Given the size of this gap, I suspect this could be improved with some investigation and profiling, but there is certainly an upper-limit on the possible performance gain. One simple example is that indexing the dataset needs to index both `'a'` and `'time'`, so it's going to be at least twice as slow as only indexing `'a'`. So the second indexing expression `ds.a.isel(time=time_filter.values)` is only `447/(169*2) = 1.32` times slower than the best case scenario. ","{""total_count"": 1, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,331668890