home / github / issue_comments

Menu
  • GraphQL API
  • Search all tables

issue_comments: 1047241508

This data as json

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/6256#issuecomment-1047241508 https://api.github.com/repos/pydata/xarray/issues/6256 1047241508 IC_kwDOAMm_X84-a6Mk 4160723 2022-02-21T21:28:56Z 2022-02-21T21:28:56Z MEMBER

This is still the same behavior with #5692.

We would need to handle pd.RangeIndex (and perhaps range?) label indexers similarly to slice label indexers, i.e., use pd.Index.slice_indexer internally to return integer indexers as slices (*).

```python b = my_da.sel(time=slice(0, 2)) b.get_index('time')

RangeIndex(start=0, stop=3, step=1, name='time')

```

Otherwise, label indexers get internally converted to arrays. Note that the conversion to an Int64Index is done in pandas (nothing specific is done on the Xarray side), so I expect that this will be eventually addressed in pandas. This conversion may not be too problematic if we consider this as an implementation detail (although I might be missing some important aspect).

```python idx = pd.RangeIndex(0, 100)

idx[slice(0, 3)]

RangeIndex(start=0, stop=3, step=1)

idx[[0, 1, 2]]

Int64Index([0, 1, 2], dtype='int64')

```

(*) One major difference is that in Xarray slice label indexers are upper-bound inclusive, while pd.RangeIndex and range are not!

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  1128304139
Powered by Datasette · Queries took 0.816ms · About: xarray-datasette