home / github

Menu
  • Search all tables
  • GraphQL API

issue_comments

Table actions
  • GraphQL API for issue_comments

6 rows where issue = 698577111 sorted by updated_at descending

✎ View and edit SQL

This data as json, CSV (advanced)

Suggested facets: reactions, created_at (date), updated_at (date)

user 4

  • johnomotani 3
  • dcherian 1
  • benbovy 1
  • max-sixty 1

author_association 2

  • CONTRIBUTOR 3
  • MEMBER 3

issue 1

  • Inconsistency in whether index is created with new dimension coordinate? · 6 ✖
id html_url issue_url node_id user created_at updated_at ▲ author_association body reactions performed_via_github_app issue
1245036513 https://github.com/pydata/xarray/issues/4417#issuecomment-1245036513 https://api.github.com/repos/pydata/xarray/issues/4417 IC_kwDOAMm_X85KNb_h johnomotani 3958036 2022-09-13T07:54:32Z 2022-09-13T07:54:32Z CONTRIBUTOR

Thanks @benbovy - with explicit methods now to produce the result with or without index, I think we can close this now :smiley:

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Inconsistency in whether index is created with new dimension coordinate? 698577111
1239064150 https://github.com/pydata/xarray/issues/4417#issuecomment-1239064150 https://api.github.com/repos/pydata/xarray/issues/4417 IC_kwDOAMm_X85J2p5W benbovy 4160723 2022-09-07T08:18:08Z 2022-09-07T08:18:08Z MEMBER

From discussions in #4825 and elsewhere (e.g., https://github.com/pydata/xarray/issues/6607#issuecomment-1126587818), could we say that we're going towards a consensus that the index vs. coordinate API should be decoupled wherever possible?

If that's the case, then set_coords() shouldn't create any index, but it could be chained with set_index() if necessary (or swap_dims() can be used instead).

Apparently set_coords() never created an index? I tested @johnomotani's example back to v0.14. Before v2022.6.0, there was a source of confusion where the Dataset and DataArray reprs still showed an * for the dimension coordinate while it had no index. This is fixed in v2022.6.0 where the reprs are now consistent: no * and no index. Does this solve the issue here?

@johnomotani from your example it looks like the two alternatives below would produce the desired result with v2022.6.0:

  • ds.set_index(x='b')
  • ds.rename(b='x').set_coords('x').set_index(x='x')

I would encourage using the latter. It is more verbose but clearer (each method is explicit).

Note also that Xarray now also supports non-dimension coordinates with an index. Once #6971 is merged, renaming "b" to "x" won't be needed. Instead you'll be able to do something like:

ds = xr.Dataset() ds['a'] = ('x', np.linspace(0,1)) ds['b'] = ('x', np.linspace(3,4)) ds = ds.set_coords('b').set_xindex('b') ds.sel(b=...)

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Inconsistency in whether index is created with new dimension coordinate? 698577111
691109135 https://github.com/pydata/xarray/issues/4417#issuecomment-691109135 https://api.github.com/repos/pydata/xarray/issues/4417 MDEyOklzc3VlQ29tbWVudDY5MTEwOTEzNQ== johnomotani 3958036 2020-09-11T13:54:01Z 2020-09-11T13:54:01Z CONTRIBUTOR

I think I was trying to fix this in #4108

:+1: On a quick glance it looks to me like #4108 would fix my issue here.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Inconsistency in whether index is created with new dimension coordinate? 698577111
691099568 https://github.com/pydata/xarray/issues/4417#issuecomment-691099568 https://api.github.com/repos/pydata/xarray/issues/4417 MDEyOklzc3VlQ29tbWVudDY5MTA5OTU2OA== dcherian 2448579 2020-09-11T13:36:34Z 2020-09-11T13:36:34Z MEMBER

I think I was trying to fix this in #4108

{
    "total_count": 1,
    "+1": 1,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Inconsistency in whether index is created with new dimension coordinate? 698577111
691045790 https://github.com/pydata/xarray/issues/4417#issuecomment-691045790 https://api.github.com/repos/pydata/xarray/issues/4417 MDEyOklzc3VlQ29tbWVudDY5MTA0NTc5MA== johnomotani 3958036 2020-09-11T11:45:40Z 2020-09-11T11:45:40Z CONTRIBUTOR

I haven't managed to get set_index to line up the results. This: ``` import numpy as np import xarray as xr

ds = xr.Dataset() ds['a'] = ('x', np.linspace(0,1)) ds['b'] = ('x', np.linspace(3,4)) ds = ds.rename(b='x') ds = ds.set_coords('x') ds = ds.set_index(x='x')

print(ds) print('indexes', ds.indexes) `` Produces a Dataset that now has an indexx, but nox` coordinate. The 'assignment of 1D variable' version produces both a coordinate and an index.

One suggested solution in #2461 was to use swap_dims(), and the following does produce the desired result ``` import numpy as np import xarray as xr

ds = xr.Dataset() ds['a'] = ('x', np.linspace(0,1)) ds['b'] = ('x', np.linspace(3,4)) ds = ds.swap_dims({'x': 'b'}) ds = ds.rename(b='x')

print(ds) print('indexes', ds.indexes) `` But (1) having to useswap_dims()to create a coordinate seems bizarre, (2) I think it's a bit ugly to get rid of thexdimension withswap_dims(), and then have to rename the new dimension back tox, when what I wanted was to add a coordinate tox`.

I found the behaviour confusing because I wasn't aware of the index variables at all... I create a coordinate with set_coords(); then do a bunch of manipulations involving slicing pieces out of the Dataset and re-combining them with concat (at least I think this is the relevant part of my code...); finally test the result by taking slices again (with isel()) of the result and comparing them to slices of the original Dataset with xarray.testing.assert_identical(), which failed because of the missing indexes. I guess somewhere in the manipulations I did, some operation created the coordinate in a new Dataset object by assignment, at which point it generated an index for the coordinate too.

I may well be missing other context that makes this an undesirable thing to do, but for my use-case at least, I think it would make more sense if set_coords() created an index if the coordinate is a dimension coordinate (or whatever the actual criterion is for assignment of a 1d variable to create an index).

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Inconsistency in whether index is created with new dimension coordinate? 698577111
690815529 https://github.com/pydata/xarray/issues/4417#issuecomment-690815529 https://api.github.com/repos/pydata/xarray/issues/4417 MDEyOklzc3VlQ29tbWVudDY5MDgxNTUyOQ== max-sixty 5635139 2020-09-11T01:17:42Z 2020-09-11T01:17:42Z MEMBER

Thanks for the clear example @johnomotani !

IIRC, the second creates an index because ds['x'] = ('x', np.linspace(3,4)) is setting a 1D variable where the name of the variable matches the name of its dimension.

I can see why this is a bit confusing, though it's not an unreasonable default imo. There have been some discussions on this on the issue tracker.

Does ds.set_index(x='b') align the examples? Or do you think there's still some confusion from the API?

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Inconsistency in whether index is created with new dimension coordinate? 698577111

Advanced export

JSON shape: default, array, newline-delimited, object

CSV options:

CREATE TABLE [issue_comments] (
   [html_url] TEXT,
   [issue_url] TEXT,
   [id] INTEGER PRIMARY KEY,
   [node_id] TEXT,
   [user] INTEGER REFERENCES [users]([id]),
   [created_at] TEXT,
   [updated_at] TEXT,
   [author_association] TEXT,
   [body] TEXT,
   [reactions] TEXT,
   [performed_via_github_app] TEXT,
   [issue] INTEGER REFERENCES [issues]([id])
);
CREATE INDEX [idx_issue_comments_issue]
    ON [issue_comments] ([issue]);
CREATE INDEX [idx_issue_comments_user]
    ON [issue_comments] ([user]);
Powered by Datasette · Queries took 47.049ms · About: xarray-datasette