home / github

Menu
  • Search all tables
  • GraphQL API

issue_comments

Table actions
  • GraphQL API for issue_comments

5 rows where issue = 1674532233 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

  • keewis 2
  • kmuehlbauer 1
  • tbloch1 1
  • TomNicholas 1

author_association 2

  • MEMBER 4
  • NONE 1

issue 1

  • Inconsistency between xr.where() and da.where() · 5 ✖
id html_url issue_url node_id user created_at updated_at ▲ author_association body reactions performed_via_github_app issue
1514925779 https://github.com/pydata/xarray/issues/7767#issuecomment-1514925779 https://api.github.com/repos/pydata/xarray/issues/7767 IC_kwDOAMm_X85aS-7T TomNicholas 35968931 2023-04-19T15:20:11Z 2023-04-19T15:20:31Z MEMBER

So while xr.where(cond, x, y) is semantically, "where condition is true, x, else y", da.where(cond, x) is "where condition is true da, else x".

Adding this description to both docstrings would be a helpful clarification IMO.

{
    "total_count": 1,
    "+1": 1,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Inconsistency between xr.where() and da.where() 1674532233
1514489469 https://github.com/pydata/xarray/issues/7767#issuecomment-1514489469 https://api.github.com/repos/pydata/xarray/issues/7767 IC_kwDOAMm_X85aRUZ9 keewis 14808389 2023-04-19T10:20:08Z 2023-04-19T10:20:08Z MEMBER

According to #503, there's two reasons: the fact that for masking this is so much easier to write (including when method chaining), and it is also API inherited from pandas.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Inconsistency between xr.where() and da.where() 1674532233
1514473763 https://github.com/pydata/xarray/issues/7767#issuecomment-1514473763 https://api.github.com/repos/pydata/xarray/issues/7767 IC_kwDOAMm_X85aRQkj tbloch1 34276374 2023-04-19T10:08:52Z 2023-04-19T10:08:52Z NONE

Thanks for the replies

So while xr.where(cond, x, y) is semantically, "where condition is true, x, else y", da.where(cond, x) is "where condition is true da, else x".

The latter feels quite unintuitive to me. Is the reason they're different only for the mask example you provided? Where NaN is returned as the default 'x' value?

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Inconsistency between xr.where() and da.where() 1674532233
1514441250 https://github.com/pydata/xarray/issues/7767#issuecomment-1514441250 https://api.github.com/repos/pydata/xarray/issues/7767 IC_kwDOAMm_X85aRIoi keewis 14808389 2023-04-19T09:45:27Z 2023-04-19T09:46:47Z MEMBER

to elaborate on that, xr.DataArray.where uses self as "then" and the second argument as "other", while for xr.where the second argument is "then" and the third argument is "other" (the condition is the first argument for both).

This API allows masking using just python arr.where(mask)

{
    "total_count": 1,
    "+1": 1,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Inconsistency between xr.where() and da.where() 1674532233
1514437541 https://github.com/pydata/xarray/issues/7767#issuecomment-1514437541 https://api.github.com/repos/pydata/xarray/issues/7767 IC_kwDOAMm_X85aRHul kmuehlbauer 5821660 2023-04-19T09:42:29Z 2023-04-19T09:42:29Z MEMBER

I think the equivalent incantation would be (note the different order of arguments in xr.where):

python da = xr.DataArray(np.arange(10)) print(xr.where(da < 5, da, 0).values) print(da.where(da < 5, 0).values) [0 1 2 3 4 0 0 0 0 0] [0 1 2 3 4 0 0 0 0 0]

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Inconsistency between xr.where() and da.where() 1674532233

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 14.871ms · About: xarray-datasette