home / github

Menu
  • GraphQL API
  • Search all tables

issue_comments

Table actions
  • GraphQL API for issue_comments

8 rows where author_association = "MEMBER", issue = 112253425 and user = 1217238 sorted by updated_at descending

✎ View and edit SQL

This data as json, CSV (advanced)

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

user 1

  • shoyer · 8 ✖

issue 1

  • Whether a DataArray is copied when inserted into a Dataset depends on whether coordinates match exactly · 8 ✖

author_association 1

  • MEMBER · 8 ✖
id html_url issue_url node_id user created_at updated_at ▲ author_association body reactions performed_via_github_app issue
459457428 https://github.com/pydata/xarray/issues/630#issuecomment-459457428 https://api.github.com/repos/pydata/xarray/issues/630 MDEyOklzc3VlQ29tbWVudDQ1OTQ1NzQyOA== shoyer 1217238 2019-01-31T18:40:57Z 2019-01-31T18:40:57Z MEMBER

The original example how gives an error about dim_1 have different size, but you can still reproduce the behavior if you provide explicit labels for dim_1, e.g., ds = Dataset({"a": DataArray(np.zeros((3, 4)))}, {'dim_1': range(4)}) ds["b"] = b = DataArray(np.zeros((3, 3)), {'dim_1': range(3)}) # !!! we implicitly fill the last column with nans. b[0, 0] = 1 print(ds["b"][0, 0]) # ==> prints 0

The copy argument is still a good idea. We could do: - copy=True always copy - copy=None copy if necessary (default) - copy=False never copy (raise if not possible)

(Note that copy=False in align currently means "copy if necessary", so this would be a breaking change if users are setting that explicitly)

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Whether a DataArray is copied when inserted into a Dataset depends on whether coordinates match exactly 112253425
152290305 https://github.com/pydata/xarray/issues/630#issuecomment-152290305 https://api.github.com/repos/pydata/xarray/issues/630 MDEyOklzc3VlQ29tbWVudDE1MjI5MDMwNQ== shoyer 1217238 2015-10-29T19:09:57Z 2015-10-29T19:09:57Z MEMBER

Yes, that's a great idea! We could add a copy=False argument to both the Dataset and DataArray constructors, like the align function.

On Thu, Oct 29, 2015 at 11:58 AM, Joe Hamman notifications@github.com wrote:

Okay, so the Dataset constructor needs to create a copy of the metadata. Could we include a argument to the constructor that copies the .values too? Obviously there is a performance hit there but it would allow users to be explicit about their own memory handling. Just an idea.

Reply to this email directly or view it on GitHub: https://github.com/xray/xray/issues/630#issuecomment-152287198

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Whether a DataArray is copied when inserted into a Dataset depends on whether coordinates match exactly 112253425
152270844 https://github.com/pydata/xarray/issues/630#issuecomment-152270844 https://api.github.com/repos/pydata/xarray/issues/630 MDEyOklzc3VlQ29tbWVudDE1MjI3MDg0NA== shoyer 1217238 2015-10-29T18:14:20Z 2015-10-29T18:14:20Z MEMBER

I think the most confusing part is that this the modifications will trickle down sometimes -- even though I'd prefer them to be always propagated, I would still mind much less if they were never propagated.

I agree! I am going to try to clarify and clean this up a little bit for the next version of xray. The only part that should ever trickle back is the values (because that's unavoidable for high performance). Right now, modifications to the metadata (.attrs) can also sometimes trickle back.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Whether a DataArray is copied when inserted into a Dataset depends on whether coordinates match exactly 112253425
152265953 https://github.com/pydata/xarray/issues/630#issuecomment-152265953 https://api.github.com/repos/pydata/xarray/issues/630 MDEyOklzc3VlQ29tbWVudDE1MjI2NTk1Mw== shoyer 1217238 2015-10-29T17:56:32Z 2015-10-29T17:56:32Z MEMBER

If it is the latter, one can just modify d.values and e.values (as well as their coordinates systems) to point to the new ndarrays, right?

Yes, in principle we could do that. But it's very surprising for a function to modify it's input arguments, so usually we try to avoid things like that.

If you put arrays in a Dataset, you should not count on modifications to the arrays in the Dataset trickling back to the original arrays.

Generally, I would recommend something like the following:

d = DataArray(...) e = DataArray(...) d, e = xray.align(d, e, join='outer') <work to initialize d and e> ds = Dataset({"d": d, "e": e})

or

d = DataArray(...) e = DataArray(...) ds = Dataset({"d": d, "e": e}) <work to initialize ds.d and ds.e>

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Whether a DataArray is copied when inserted into a Dataset depends on whether coordinates match exactly 112253425
150732823 https://github.com/pydata/xarray/issues/630#issuecomment-150732823 https://api.github.com/repos/pydata/xarray/issues/630 MDEyOklzc3VlQ29tbWVudDE1MDczMjgyMw== shoyer 1217238 2015-10-24T01:29:26Z 2015-10-24T01:29:26Z MEMBER

@anntzer Yes, that would be a reasonable thing to state in the docs. Though I'm not sure how widespread that pattern is -- this is the first time I've seen it used.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Whether a DataArray is copied when inserted into a Dataset depends on whether coordinates match exactly 112253425
150007242 https://github.com/pydata/xarray/issues/630#issuecomment-150007242 https://api.github.com/repos/pydata/xarray/issues/630 MDEyOklzc3VlQ29tbWVudDE1MDAwNzI0Mg== shoyer 1217238 2015-10-21T19:53:42Z 2015-10-21T19:53:42Z MEMBER

"If you use the DataArray constructor instead of inserting an item in a Dataset, the array values will always be a view." Can you explain what you mean here? I am using the DataArray constructor and then inserting the item in the Dataset.

Yes, I should clarify -- the DataArray you create with the constructor will be a view. When you insert it into a Dataset, it may no longer be a view (if the index coordinates are not aligned).

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Whether a DataArray is copied when inserted into a Dataset depends on whether coordinates match exactly 112253425
149987937 https://github.com/pydata/xarray/issues/630#issuecomment-149987937 https://api.github.com/repos/pydata/xarray/issues/630 MDEyOklzc3VlQ29tbWVudDE0OTk4NzkzNw== shoyer 1217238 2015-10-21T18:36:00Z 2015-10-21T19:51:46Z MEMBER

If you use the DataArray constructor instead of inserting an item in a Dataset, the array values will always be a view.

If you pre-align the array you are about to insert using xray.align, it is also guaranteed to be a view.

Unfortunately, it's impossible to make such automatically aligned arrays views in general, because of numpy's memory model.

One thing we could do is add an option to make inserted items always a copy. I would probably put this on the Dataset.merge method, which is what Dataset.__getitem__ uses under the hood.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Whether a DataArray is copied when inserted into a Dataset depends on whether coordinates match exactly 112253425
149385943 https://github.com/pydata/xarray/issues/630#issuecomment-149385943 https://api.github.com/repos/pydata/xarray/issues/630 MDEyOklzc3VlQ29tbWVudDE0OTM4NTk0Mw== shoyer 1217238 2015-10-20T00:38:19Z 2015-10-20T00:38:19Z MEMBER

Yes, this is certainly the case -- do you suggest doing this differently? If coordinates are already aligned, I would rather not do unnecessary copies -- this could be quite expensive.

If this was surprising to you, then it is certainly worth documenting somewhere.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Whether a DataArray is copied when inserted into a Dataset depends on whether coordinates match exactly 112253425

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