home / github

Menu
  • GraphQL API
  • Search all tables

issue_comments

Table actions
  • GraphQL API for issue_comments

57 rows where user = 5572303 sorted by updated_at descending

✎ View and edit SQL

This data as json, CSV (advanced)

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

issue 12

  • Sortby 16
  • Allow concat() to drop/replace duplicate index labels? 15
  • combine_first by using apply_ufunc in ops.fillna 5
  • sortby() or sort_index() method for Dataset and DataArray 4
  • Options to binary ops kwargs 4
  • Weighted quantile 3
  • center=True for xarray.DataArray.rolling() 2
  • kwarg defaults (join="inner") for DataArray._binary_ops() 2
  • rasm.nc is not a valid NetCDF 3 file 2
  • .equals() on a coordinate takes attributes into comparison 2
  • WIP: progress toward making groupby work with multiple arguments 1
  • indexing error in sel subsets 1

user 1

  • chunweiyuan · 57 ✖

author_association 1

  • CONTRIBUTOR 57
id html_url issue_url node_id user created_at updated_at ▲ author_association body reactions performed_via_github_app issue
473387146 https://github.com/pydata/xarray/issues/1371#issuecomment-473387146 https://api.github.com/repos/pydata/xarray/issues/1371 MDEyOklzc3VlQ29tbWVudDQ3MzM4NzE0Ng== chunweiyuan 5572303 2019-03-15T18:01:31Z 2019-03-15T18:01:31Z CONTRIBUTOR

My personal hope is to keep this thread open just for the record. But given the non-activity on the numpy end, I honestly can't promise any resolution to this issue in the near future. Thanks!

PS I persist because some people do seem to appreciate that PR and have forked it for their own use :)

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Weighted quantile 221366244
473033854 https://github.com/pydata/xarray/issues/1371#issuecomment-473033854 https://api.github.com/repos/pydata/xarray/issues/1371 MDEyOklzc3VlQ29tbWVudDQ3MzAzMzg1NA== chunweiyuan 5572303 2019-03-14T19:52:33Z 2019-03-14T19:52:33Z CONTRIBUTOR

So, as per suggestion by Stephan, I submitted the PR to numpy instead: https://github.com/numpy/numpy/pull/9211

Despite having possibly the highest number of comments of all active numpy PRs and passing all the tests, it's been sitting in limbo for the last few months. There seems to be quite some uncertainty about what to do with it, and the discussion has gone off tangent a bit to more upstream issues.

My hope is still to have it eventually merged into numpy, so that it could be easily ported to xarray. It's proven to be quite useful to my coworkers, as well as some of the numpy users. I believe it'll also serve xarray well. Thank you all for your patience.

{
    "total_count": 1,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 1
}
  Weighted quantile 221366244
303255121 https://github.com/pydata/xarray/issues/1420#issuecomment-303255121 https://api.github.com/repos/pydata/xarray/issues/1420 MDEyOklzc3VlQ29tbWVudDMwMzI1NTEyMQ== chunweiyuan 5572303 2017-05-23T00:21:29Z 2017-05-23T00:21:29Z CONTRIBUTOR

This is getting close to the fundamental paradigm of xarray. Would it entail some massive code migration (and user protests) if we change how we express da.coords['x'](by removing point coordinates)?

I'm thinking of a new API that compares only the values and indexing coordinates between two objects, but struggle to come up with a simple, descriptive name........

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  .equals() on a coordinate takes attributes into comparison 230529125
303244294 https://github.com/pydata/xarray/issues/1420#issuecomment-303244294 https://api.github.com/repos/pydata/xarray/issues/1420 MDEyOklzc3VlQ29tbWVudDMwMzI0NDI5NA== chunweiyuan 5572303 2017-05-22T23:09:39Z 2017-05-22T23:09:39Z CONTRIBUTOR

I'm just having a hard time wrapping my head around the definitions here. da['some_attr'] = 0 sets a point coordinate, and this point coordinate shows up in da.coords, but not da.dims, because da.dims only pertains to indexing coordinates. Why is this point coordinate attached to every other coordinate then? In other words, why would da.coords['x'] contain some_attr as well?

Somehow it just doesn't feel right intuitively for some point dimension to mess up my comparison between two 1-D coordinates, but I might be missing some important use cases here.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  .equals() on a coordinate takes attributes into comparison 230529125
301135310 https://github.com/pydata/xarray/pull/1389#issuecomment-301135310 https://api.github.com/repos/pydata/xarray/issues/1389 MDEyOklzc3VlQ29tbWVudDMwMTEzNTMxMA== chunweiyuan 5572303 2017-05-12T17:18:49Z 2017-05-12T17:18:49Z CONTRIBUTOR

Thank you very much for your patience!

BTW, I think I messed up my co-worker's name in whats-new.rst. The spelling is right (Kyle Heuton), but the extra indentation shouldn't be there. As a result his name appears a bit out of place. Would be very much obliged if you could fix that in your next push to master. Gracias.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Sortby 225222227
300947995 https://github.com/pydata/xarray/pull/1389#issuecomment-300947995 https://api.github.com/repos/pydata/xarray/issues/1389 MDEyOklzc3VlQ29tbWVudDMwMDk0Nzk5NQ== chunweiyuan 5572303 2017-05-11T23:59:29Z 2017-05-11T23:59:29Z CONTRIBUTOR

api.rst should've been a checklist item :)

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Sortby 225222227
300850103 https://github.com/pydata/xarray/pull/1389#issuecomment-300850103 https://api.github.com/repos/pydata/xarray/issues/1389 MDEyOklzc3VlQ29tbWVudDMwMDg1MDEwMw== chunweiyuan 5572303 2017-05-11T16:51:34Z 2017-05-11T16:51:34Z CONTRIBUTOR

If that's the case then I have nothing more to add. I've run flake8 on the individual files I touched I as well, such as flake8 xarray/core/dataset.py, and none of my changes are flagged.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Sortby 225222227
300675689 https://github.com/pydata/xarray/pull/1389#issuecomment-300675689 https://api.github.com/repos/pydata/xarray/issues/1389 MDEyOklzc3VlQ29tbWVudDMwMDY3NTY4OQ== chunweiyuan 5572303 2017-05-11T03:55:58Z 2017-05-11T03:55:58Z CONTRIBUTOR

git diff upstream/master | flake8 --diff only complains about a bunch of lines in whats-new.rst and reshaping.rst. But these complaints don't make any sense to me. Some examples: doc/reshaping.rst:195:1: E112 expected an indented block doc/reshaping.rst:203:1: E101 indentation contains mixed spaces and tabs doc/reshaping.rst:203:1: W191 indentation contains tabs doc/reshaping.rst:203:2: E113 unexpected indentation I've played around with it a bit but not seen any changes to the complaints. What is going on? Should I even worry about the .rst files?

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Sortby 225222227
300600778 https://github.com/pydata/xarray/pull/1389#issuecomment-300600778 https://api.github.com/repos/pydata/xarray/issues/1389 MDEyOklzc3VlQ29tbWVudDMwMDYwMDc3OA== chunweiyuan 5572303 2017-05-10T20:20:12Z 2017-05-10T20:20:12Z CONTRIBUTOR

Haha, brilliant.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Sortby 225222227
300566860 https://github.com/pydata/xarray/pull/1389#issuecomment-300566860 https://api.github.com/repos/pydata/xarray/issues/1389 MDEyOklzc3VlQ29tbWVudDMwMDU2Njg2MA== chunweiyuan 5572303 2017-05-10T18:08:33Z 2017-05-10T18:08:33Z CONTRIBUTOR

I just made some futile attempts to find that checklist, to no avail. Mind helping me with a link? :)

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Sortby 225222227
300555321 https://github.com/pydata/xarray/pull/1389#issuecomment-300555321 https://api.github.com/repos/pydata/xarray/issues/1389 MDEyOklzc3VlQ29tbWVudDMwMDU1NTMyMQ== chunweiyuan 5572303 2017-05-10T17:30:32Z 2017-05-10T17:30:32Z CONTRIBUTOR

Today is the first time I've heard of flake8. Is this how you guys standardize quality checks? If so, do you run once for python 3.5 and once for 2.7?

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Sortby 225222227
300534562 https://github.com/pydata/xarray/pull/1389#issuecomment-300534562 https://api.github.com/repos/pydata/xarray/issues/1389 MDEyOklzc3VlQ29tbWVudDMwMDUzNDU2Mg== chunweiyuan 5572303 2017-05-10T16:16:28Z 2017-05-10T16:16:28Z CONTRIBUTOR

Looks ready now.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Sortby 225222227
300306624 https://github.com/pydata/xarray/pull/1389#issuecomment-300306624 https://api.github.com/repos/pydata/xarray/issues/1389 MDEyOklzc3VlQ29tbWVudDMwMDMwNjYyNA== chunweiyuan 5572303 2017-05-09T21:27:06Z 2017-05-09T21:27:06Z CONTRIBUTOR

Think I just copied something over from variable.py and changed the message a little bit...

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Sortby 225222227
300289437 https://github.com/pydata/xarray/pull/1389#issuecomment-300289437 https://api.github.com/repos/pydata/xarray/issues/1389 MDEyOklzc3VlQ29tbWVudDMwMDI4OTQzNw== chunweiyuan 5572303 2017-05-09T20:20:44Z 2017-05-09T20:20:44Z CONTRIBUTOR

From numpy 1.11.0 release notes: ``` np.lexsort now supports arrays with object data-type

The function now internally calls the generic npy_amergesort when the type does not implement a merge-sort kind of argsort method. ```

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Sortby 225222227
300283451 https://github.com/pydata/xarray/pull/1389#issuecomment-300283451 https://api.github.com/repos/pydata/xarray/issues/1389 MDEyOklzc3VlQ29tbWVudDMwMDI4MzQ1MQ== chunweiyuan 5572303 2017-05-09T19:57:39Z 2017-05-09T19:57:39Z CONTRIBUTOR

1.10.4 failed with the merge sort error. 1.11.0 failed with some error that had nothing to do with merge sort (Reason: image not found. Make sure your test modules/packages have valid Python names.) Starting from 1.11.1 it works fine.

What's the best course of action now?

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Sortby 225222227
300267772 https://github.com/pydata/xarray/pull/1389#issuecomment-300267772 https://api.github.com/repos/pydata/xarray/issues/1389 MDEyOklzc3VlQ29tbWVudDMwMDI2Nzc3Mg== chunweiyuan 5572303 2017-05-09T18:57:51Z 2017-05-09T18:57:51Z CONTRIBUTOR

If I downgrade to numpy 1.10, I get that error. Once upgraded to 1.12, it goes away......

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Sortby 225222227
300029141 https://github.com/pydata/xarray/pull/1389#issuecomment-300029141 https://api.github.com/repos/pydata/xarray/issues/1389 MDEyOklzc3VlQ29tbWVudDMwMDAyOTE0MQ== chunweiyuan 5572303 2017-05-09T00:39:44Z 2017-05-09T00:39:44Z CONTRIBUTOR

Perhaps it's finally ready for prime time?

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Sortby 225222227
299645639 https://github.com/pydata/xarray/pull/1389#issuecomment-299645639 https://api.github.com/repos/pydata/xarray/issues/1389 MDEyOklzc3VlQ29tbWVudDI5OTY0NTYzOQ== chunweiyuan 5572303 2017-05-06T15:04:31Z 2017-05-06T15:04:31Z CONTRIBUTOR

I've added a tiny bit of extra docstring just to ease my discomfort about the NaN sort. If you feel it's redundant I can remove it.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Sortby 225222227
299230655 https://github.com/pydata/xarray/pull/1389#issuecomment-299230655 https://api.github.com/repos/pydata/xarray/issues/1389 MDEyOklzc3VlQ29tbWVudDI5OTIzMDY1NQ== chunweiyuan 5572303 2017-05-04T16:01:45Z 2017-05-04T16:01:45Z CONTRIBUTOR

Almost time to merge this baby in? :)

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Sortby 225222227
298802941 https://github.com/pydata/xarray/issues/1374#issuecomment-298802941 https://api.github.com/repos/pydata/xarray/issues/1374 MDEyOklzc3VlQ29tbWVudDI5ODgwMjk0MQ== chunweiyuan 5572303 2017-05-03T01:14:12Z 2017-05-03T01:14:12Z CONTRIBUTOR

This has impacted our workflow as well. Please let us know if we can help.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  indexing error in sel subsets 221855729
298365438 https://github.com/pydata/xarray/pull/1389#issuecomment-298365438 https://api.github.com/repos/pydata/xarray/issues/1389 MDEyOklzc3VlQ29tbWVudDI5ODM2NTQzOA== chunweiyuan 5572303 2017-05-01T16:18:55Z 2017-05-01T16:18:55Z CONTRIBUTOR

Weird. Travis seems to fail in places unrelated to my changes.

I'm rather agnostic to sortby vs. sort_by.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Sortby 225222227
298109506 https://github.com/pydata/xarray/issues/967#issuecomment-298109506 https://api.github.com/repos/pydata/xarray/issues/967 MDEyOklzc3VlQ29tbWVudDI5ODEwOTUwNg== chunweiyuan 5572303 2017-04-28T21:20:57Z 2017-04-28T21:20:57Z CONTRIBUTOR

Sounds good. As I'm writing the type-checking code I run into this question: Why would I have a xarray.core.dataset.DataVariables object as input? A DataVariables object could contain multiple DataArrays, which makes the interpretation a bit unclear. In my mind it should only be 1.) name(s) of existing index coords, or 2.) 1D DataArray(s) with dim in self.dims

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  sortby() or sort_index() method for Dataset and DataArray 171077425
298054041 https://github.com/pydata/xarray/issues/1113#issuecomment-298054041 https://api.github.com/repos/pydata/xarray/issues/1113 MDEyOklzc3VlQ29tbWVudDI5ODA1NDA0MQ== chunweiyuan 5572303 2017-04-28T17:09:09Z 2017-04-28T17:09:09Z CONTRIBUTOR

Just did. Got it to work. Muchas Gracias.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  rasm.nc is not a valid NetCDF 3 file 188869101
297875052 https://github.com/pydata/xarray/issues/967#issuecomment-297875052 https://api.github.com/repos/pydata/xarray/issues/967 MDEyOklzc3VlQ29tbWVudDI5Nzg3NTA1Mg== chunweiyuan 5572303 2017-04-28T00:27:46Z 2017-04-28T00:27:46Z CONTRIBUTOR

What would the signature of sortby() be then? On our end we just want a more intuitive way to sort by dimension labels, so now I have sort_index(self, dims, ascending=True). sortby(), based on your description, seems like a separate method. Or any suggestion on how we can marry the two into something coherent?

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  sortby() or sort_index() method for Dataset and DataArray 171077425
297868909 https://github.com/pydata/xarray/issues/967#issuecomment-297868909 https://api.github.com/repos/pydata/xarray/issues/967 MDEyOklzc3VlQ29tbWVudDI5Nzg2ODkwOQ== chunweiyuan 5572303 2017-04-27T23:43:12Z 2017-04-27T23:43:12Z CONTRIBUTOR

A couple of things:

1.) Upon a little thinking I believe sort_values() doesn't make much sense, so I'm only working on sort_index()'. 2.) the way I handle theinplacekwarg is by ``` if inplace: self = self.isel(**{d: self.indexes[d].argsort() if ascending else self.indexes[d].argsort()[::-1] for d in dimensions}) else: return self.isel(**{d: self.indexes[d].argsort() if ascending else self.indexes[d].argsort()[::-1] for d in dimensions}) ``` But when I run ``` ds.sort_index(dims=['x', 'y'], inplace=True) ``` nothing changes. If I put apdb.set_trace()` right below the self = self*** I can evaluate self and see that it's what I want it to be. But somehow that assignment is not realized to the higher level. Any quick pointer?

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  sortby() or sort_index() method for Dataset and DataArray 171077425
297835073 https://github.com/pydata/xarray/issues/1113#issuecomment-297835073 https://api.github.com/repos/pydata/xarray/issues/1113 MDEyOklzc3VlQ29tbWVudDI5NzgzNTA3Mw== chunweiyuan 5572303 2017-04-27T20:48:44Z 2017-04-27T20:48:44Z CONTRIBUTOR

When I do conda install netcdf4, it ends up downgrading my numpy from 1.12.0 to 1.11.3, which triggers other dependency-related problems in my code. Is there a different solution to this problem?

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  rasm.nc is not a valid NetCDF 3 file 188869101
296394094 https://github.com/pydata/xarray/issues/967#issuecomment-296394094 https://api.github.com/repos/pydata/xarray/issues/967 MDEyOklzc3VlQ29tbWVudDI5NjM5NDA5NA== chunweiyuan 5572303 2017-04-22T18:57:07Z 2017-04-22T18:57:07Z CONTRIBUTOR

On our end, we currently do the following when we need to sort by axis label (lat/lon in this case): da.reindex(indexers={'lat':sorted(da.coords['lat'].values), 'lon':sorted(da.coords['lon'].values)}) Upon first glance of the source code I think our approach goes down different code path than your .isel() approach. The most obvious difference, from a user's stand point, is probably that .reindex() returns a new object, whereas .isel() returns a view (typically). In Pandas, both sort_index() and sort_values() seem to return new objects.

We'd be happy to contribute to an xarray version of sort_index() and sort_values(). The first question is, which one would be the more robust and computationally efficient code path to take?

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  sortby() or sort_index() method for Dataset and DataArray 171077425
293730368 https://github.com/pydata/xarray/issues/1371#issuecomment-293730368 https://api.github.com/repos/pydata/xarray/issues/1371 MDEyOklzc3VlQ29tbWVudDI5MzczMDM2OA== chunweiyuan 5572303 2017-04-12T22:56:42Z 2017-04-12T22:56:42Z CONTRIBUTOR

Cool, let me toss it out on the numpy board and see what they think.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Weighted quantile 221366244
287904381 https://github.com/pydata/xarray/pull/924#issuecomment-287904381 https://api.github.com/repos/pydata/xarray/issues/924 MDEyOklzc3VlQ29tbWVudDI4NzkwNDM4MQ== chunweiyuan 5572303 2017-03-20T21:30:32Z 2017-03-20T21:30:32Z CONTRIBUTOR

This functionality is quite important to us as well. How might we help? Should I simply fork groupby-multiple-args?

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  WIP: progress toward making groupby work with multiple arguments 168272291
274641832 https://github.com/pydata/xarray/pull/1204#issuecomment-274641832 https://api.github.com/repos/pydata/xarray/issues/1204 MDEyOklzc3VlQ29tbWVudDI3NDY0MTgzMg== chunweiyuan 5572303 2017-01-23T22:43:32Z 2017-01-23T22:43:32Z CONTRIBUTOR

tears in my eyes.......

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  combine_first by using apply_ufunc in ops.fillna 200478981
274574880 https://github.com/pydata/xarray/pull/1204#issuecomment-274574880 https://api.github.com/repos/pydata/xarray/issues/1204 MDEyOklzc3VlQ29tbWVudDI3NDU3NDg4MA== chunweiyuan 5572303 2017-01-23T18:30:14Z 2017-01-23T18:30:14Z CONTRIBUTOR

checking in on this PR...

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  combine_first by using apply_ufunc in ops.fillna 200478981
274195788 https://github.com/pydata/xarray/pull/1204#issuecomment-274195788 https://api.github.com/repos/pydata/xarray/issues/1204 MDEyOklzc3VlQ29tbWVudDI3NDE5NTc4OA== chunweiyuan 5572303 2017-01-20T22:22:01Z 2017-01-20T22:22:01Z CONTRIBUTOR

time to merge this guy?

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  combine_first by using apply_ufunc in ops.fillna 200478981
273676997 https://github.com/pydata/xarray/pull/1204#issuecomment-273676997 https://api.github.com/repos/pydata/xarray/issues/1204 MDEyOklzc3VlQ29tbWVudDI3MzY3Njk5Nw== chunweiyuan 5572303 2017-01-19T04:06:45Z 2017-01-19T04:06:45Z CONTRIBUTOR

I'm not sure why continuous integration check is taking forever.....

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  combine_first by using apply_ufunc in ops.fillna 200478981
272582190 https://github.com/pydata/xarray/pull/1204#issuecomment-272582190 https://api.github.com/repos/pydata/xarray/issues/1204 MDEyOklzc3VlQ29tbWVudDI3MjU4MjE5MA== chunweiyuan 5572303 2017-01-14T00:14:17Z 2017-01-14T00:14:17Z CONTRIBUTOR

So I addressed some of the comments, but not all. Please let me know what you think.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  combine_first by using apply_ufunc in ops.fillna 200478981
271461749 https://github.com/pydata/xarray/issues/1072#issuecomment-271461749 https://api.github.com/repos/pydata/xarray/issues/1072 MDEyOklzc3VlQ29tbWVudDI3MTQ2MTc0OQ== chunweiyuan 5572303 2017-01-10T01:37:22Z 2017-01-10T01:37:22Z CONTRIBUTOR

I'm curious, if you put a from .computation import apply_ufunc inside ops.py, would you not get some circular ImportError? Seems difficult to get out of this circle......

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Allow concat() to drop/replace duplicate index labels? 186680248
270810132 https://github.com/pydata/xarray/issues/1072#issuecomment-270810132 https://api.github.com/repos/pydata/xarray/issues/1072 MDEyOklzc3VlQ29tbWVudDI3MDgxMDEzMg== chunweiyuan 5572303 2017-01-06T01:47:20Z 2017-01-06T01:47:20Z CONTRIBUTOR

Ok I'll give it a shot. Will touch base when I run into roadblocks.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Allow concat() to drop/replace duplicate index labels? 186680248
270797694 https://github.com/pydata/xarray/issues/1072#issuecomment-270797694 https://api.github.com/repos/pydata/xarray/issues/1072 MDEyOklzc3VlQ29tbWVudDI3MDc5NzY5NA== chunweiyuan 5572303 2017-01-06T00:25:54Z 2017-01-06T00:25:54Z CONTRIBUTOR

So I took at quick look at the commits in #964. It's not entirely clear to me how one can easily add a join argument to fillna. Should I keep my current commits, and just submit a PR to master once #964 is merged in, and then we could see how it goes from there?

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Allow concat() to drop/replace duplicate index labels? 186680248
260716231 https://github.com/pydata/xarray/issues/1072#issuecomment-260716231 https://api.github.com/repos/pydata/xarray/issues/1072 MDEyOklzc3VlQ29tbWVudDI2MDcxNjIzMQ== chunweiyuan 5572303 2016-11-15T17:57:19Z 2016-11-15T17:57:19Z CONTRIBUTOR

Checking in on how to move forward from here...I feel it's pretty close to a PR...

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Allow concat() to drop/replace duplicate index labels? 186680248
260431105 https://github.com/pydata/xarray/issues/1072#issuecomment-260431105 https://api.github.com/repos/pydata/xarray/issues/1072 MDEyOklzc3VlQ29tbWVudDI2MDQzMTEwNQ== chunweiyuan 5572303 2016-11-14T19:11:55Z 2016-11-14T19:11:55Z CONTRIBUTOR

Currently, ds0.combine_first(ds1) gives exactly the same result as xr.merge([ds0, ds1]). But for data arrays it still offers something new.

Either 1.) my combine_first should be doing something different with datasets, or 2.) we don't need a combine_first for datasets, or 3.) change xr.merge so that when applied to data arrays, it creates a new data array with outer-join and fillna (by chaining combine_first down the list of data arrays).

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Allow concat() to drop/replace duplicate index labels? 186680248
260411626 https://github.com/pydata/xarray/issues/1072#issuecomment-260411626 https://api.github.com/repos/pydata/xarray/issues/1072 MDEyOklzc3VlQ29tbWVudDI2MDQxMTYyNg== chunweiyuan 5572303 2016-11-14T18:02:47Z 2016-11-14T18:02:47Z CONTRIBUTOR

I suppose I can save one line by getting rid of the duplicate f = _func_slash_method_wrapper(fillna), but besides that I'm not sure what's the best way to refactor this.

If the behaviors check out, then this branch might be ready for a PR.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Allow concat() to drop/replace duplicate index labels? 186680248
260166034 https://github.com/pydata/xarray/issues/1072#issuecomment-260166034 https://api.github.com/repos/pydata/xarray/issues/1072 MDEyOklzc3VlQ29tbWVudDI2MDE2NjAzNA== chunweiyuan 5572303 2016-11-13T04:14:38Z 2016-11-13T04:14:38Z CONTRIBUTOR

So these are my _fillna and _combine_first in ops.inject_binary_ops:

``` f = _func_slash_method_wrapper(fillna) method = cls._binary_op(f, join='left', fillna=True) setattr(cls, '_fillna', method)

f = _func_slash_method_wrapper(fillna) method = cls._binary_op(f, join='outer', fillna=True) setattr(cls, '_combine_first', method) ```

Within dataarray.py and dataset.py, combine_first(self, other) simply returns self._combine_first(other). This code path renders the test results you saw earlier.

Given this construct, I'm not sure how to do the refactor like you mentioned. Perhaps a few more pointers to the right direction? :)

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Allow concat() to drop/replace duplicate index labels? 186680248
260137121 https://github.com/pydata/xarray/issues/1072#issuecomment-260137121 https://api.github.com/repos/pydata/xarray/issues/1072 MDEyOklzc3VlQ29tbWVudDI2MDEzNzEyMQ== chunweiyuan 5572303 2016-11-12T17:48:08Z 2016-11-12T17:48:08Z CONTRIBUTOR

hmm, so what would be an expected behavior of ds.combine_first?

If I have

```

ds0 <xarray.Dataset> Dimensions: (x: 2, y: 2) Coordinates: * x (x) |S1 'a' 'b' * y (y) int64 -1 0 Data variables: ds0 (x, y) int64 0 0 0 0 ds1 <xarray.Dataset> Dimensions: (x: 2, y: 2) Coordinates: * x (x) |S1 'b' 'c' * y (y) int64 0 1 Data variables: ds1 (x, y) int64 1 1 1 1 ```

I get

```

ds0.combine_first(ds1) <xarray.Dataset> Dimensions: (x: 3, y: 3) Coordinates: * x (x) object 'a' 'b' 'c' * y (y) int64 -1 0 1 Data variables: ds0 (x, y) float64 0.0 0.0 nan 0.0 0.0 nan nan nan nan ds1 (x, y) float64 nan nan nan nan 1.0 1.0 nan 1.0 1.0 ```

and changing the order to ds1.combine_first(ds0) just flips the order of the data_vars, but the cell values of the data_vars remain the same.

This is done essentially by adding a _combine_first to ops.py that mimics _fillna, except join='outer'.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Allow concat() to drop/replace duplicate index labels? 186680248
260100010 https://github.com/pydata/xarray/pull/1065#issuecomment-260100010 https://api.github.com/repos/pydata/xarray/issues/1065 MDEyOklzc3VlQ29tbWVudDI2MDEwMDAxMA== chunweiyuan 5572303 2016-11-12T04:00:10Z 2016-11-12T04:00:10Z CONTRIBUTOR

woohoo!

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Options to binary ops kwargs 185794232
259842225 https://github.com/pydata/xarray/issues/1072#issuecomment-259842225 https://api.github.com/repos/pydata/xarray/issues/1072 MDEyOklzc3VlQ29tbWVudDI1OTg0MjIyNQ== chunweiyuan 5572303 2016-11-10T23:49:07Z 2016-11-10T23:49:07Z CONTRIBUTOR

Any suggestion on improvement?

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Allow concat() to drop/replace duplicate index labels? 186680248
259842050 https://github.com/pydata/xarray/pull/1065#issuecomment-259842050 https://api.github.com/repos/pydata/xarray/issues/1065 MDEyOklzc3VlQ29tbWVudDI1OTg0MjA1MA== chunweiyuan 5572303 2016-11-10T23:48:11Z 2016-11-10T23:48:11Z CONTRIBUTOR

Alright, if that's desired, I'd just change code in apply_over_both() of dataset._calculate_binary_op to react to different kwarg values, and adding a method in test_dataset.py. Should be able to push before the weekend is over.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Options to binary ops kwargs 185794232
259750146 https://github.com/pydata/xarray/pull/1065#issuecomment-259750146 https://api.github.com/repos/pydata/xarray/issues/1065 MDEyOklzc3VlQ29tbWVudDI1OTc1MDE0Ng== chunweiyuan 5572303 2016-11-10T17:15:29Z 2016-11-10T17:15:29Z CONTRIBUTOR

Just checking in. Is there something else that needs to be added to this PR before merge?

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Options to binary ops kwargs 185794232
259272844 https://github.com/pydata/xarray/issues/1072#issuecomment-259272844 https://api.github.com/repos/pydata/xarray/issues/1072 MDEyOklzc3VlQ29tbWVudDI1OTI3Mjg0NA== chunweiyuan 5572303 2016-11-08T21:59:06Z 2016-11-08T22:10:54Z CONTRIBUTOR

So I spent some time looking at dataset._calculate_binary_op but couldn't quite come up with what I wanted. After banging my head against the wall a bit this is what I have:

def combine_first(left, right): la, ra = xr.align(left, right, join='outer', copy=False) # should copy=True? la, ra = la.where(ra.isnull() | ra.notnull()), ra.where(la.isnull() | la.notnull()) ra.values[la.notnull().values] = la.values[la.notnull().values] return ra

And it seems to work. My test cases are

```

l_2d <xarray.DataArray (x: 2, y: 2)> array([[1, 1], [1, 1]]) Coordinates: * x (x) |S1 'a' 'b' * y (y) int64 -2 0 r_2d <xarray.DataArray (x: 2, y: 2)> array([[0, 0], [0, 0]]) Coordinates: * x (x) |S1 'b' 'c' * y (y) int64 0 2 ar_1d <xarray.DataArray (x: 3)> array([4, 5, 6]) Coordinates: * x (x) |S1 'a' 'b' 'd' ```

and here are the results:

```

combine_first(l_2d, r_2d) <xarray.DataArray (x: 3, y: 3)> array([[ 1., 1., nan], [ 1., 1., 0.], [ nan, 0., 0.]]) Coordinates: * x (x) object 'a' 'b' 'c' * y (y) int64 -2 0 2 combine_first(r_2d, l_2d) <xarray.DataArray (x: 3, y: 3)> array([[ 1., 1., nan], [ 1., 0., 0.], [ nan, 0., 0.]]) Coordinates: * x (x) object 'a' 'b' 'c' * y (y) int64 -2 0 2 combine_first(l_2d, ar_1d) <xarray.DataArray (x: 3, y: 2)> array([[ 1., 1.], [ 1., 1.], [ 6., 6.]]) Coordinates: * x (x) object 'a' 'b' 'd' * y (y) int64 -2 0 combine_first(ar_1d, l_2d) <xarray.DataArray (x: 3, y: 2)> array([[ 4., 4.], [ 5., 5.], [ 6., 6.]]) Coordinates: * x (x) object 'a' 'b' 'd' * y (y) int64 -2 0 ```

I don't like the fact that I have to access .values, and the use of .where is slightly wonky. But this is definitely the cleanest working solution I have thus far. Any suggestion to improve is welcome.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Allow concat() to drop/replace duplicate index labels? 186680248
258718234 https://github.com/pydata/xarray/issues/1072#issuecomment-258718234 https://api.github.com/repos/pydata/xarray/issues/1072 MDEyOklzc3VlQ29tbWVudDI1ODcxODIzNA== chunweiyuan 5572303 2016-11-06T23:02:01Z 2016-11-06T23:15:30Z CONTRIBUTOR

Thanks for the reply. Would it make things easier if c, d = xr.align(a, b, join="outer") explicitly broadcasts missing dimensions in all returned values? Currently, if b is missing a dimension, then d would also miss a dimension:

```

a <xarray.DataArray (x: 2, y: 2)> array([[1, 1], [1, 1]]) Coordinates: * x (x) |S1 'a' 'b' * y (y) int64 -2 0 b <xarray.DataArray (x: 3)> array([4, 5, 6]) Coordinates: * x (x) |S1 'a' 'b' 'd' c, d = xr.align(a, b, join="outer") c <xarray.DataArray (x: 3, y: 2)> array([[ 1., 1.], [ 1., 1.], [ nan, nan]]) Coordinates: * x (x) object 'a' 'b' 'd' * y (y) int64 -2 0 d <xarray.DataArray (x: 3)> array([4, 5, 6]) Coordinates: * x (x) object 'a' 'b' 'd' ```

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Allow concat() to drop/replace duplicate index labels? 186680248
258567735 https://github.com/pydata/xarray/issues/1072#issuecomment-258567735 https://api.github.com/repos/pydata/xarray/issues/1072 MDEyOklzc3VlQ29tbWVudDI1ODU2NzczNQ== chunweiyuan 5572303 2016-11-04T22:58:24Z 2016-11-04T22:58:24Z CONTRIBUTOR

Another test:

```

left <xarray.DataArray (x: 2, y: 2)> array([[1, 1], [1, 1]]) Coordinates: * x (x) |S1 'a' 'b' * y (y) int64 -2 0 right <xarray.DataArray (x: 2, y: 2)> array([[0, 0], [0, 0]]) Coordinates: * x (x) |S1 'b' 'c' * y (y) int64 0 2 combine_first(left, right) <xarray.DataArray (x: 3, y: 3)> array([[ 1., 1., nan], [ 1., 1., 0.], [ nan, 0., 0.]]) Coordinates: * x (x) object 'a' 'b' 'c' * y (y) int64 -2 0 2 combine_first(right, left) <xarray.DataArray (x: 3, y: 3)> array([[ 1., 1., nan], [ 1., 0., 0.], [ nan, 0., 0.]]) Coordinates: * x (x) object 'a' 'b' 'c' * y (y) int64 -2 0 2 ```

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Allow concat() to drop/replace duplicate index labels? 186680248
258294667 https://github.com/pydata/xarray/issues/1072#issuecomment-258294667 https://api.github.com/repos/pydata/xarray/issues/1072 MDEyOklzc3VlQ29tbWVudDI1ODI5NDY2Nw== chunweiyuan 5572303 2016-11-03T22:35:47Z 2016-11-03T22:35:47Z CONTRIBUTOR

Here's my somewhat hacky stab at it, not optimized for speed/efficiency:

def combine_first(left, right): """ Takes 2 data arrays, performs an outer-concat, using values from the right array to fill in for missing coordinates in the left array. """ l_aligned, r_aligned = xr.align(left, right, join="outer") temp = l_aligned + r_aligned # hack temp.values[temp.notnull().values] = np.nan # now template is all nan # insert non-nan values from right array first temp.values[r_aligned.notnull().values] = r_aligned.values[r_aligned.notnull().values] # insert values from left array, overwriting those from right array temp.values[l_aligned.notnull().values] = l_aligned.values[l_aligned.notnull().values] return temp

And the result:

```

ar1 = xr.DataArray([4,5,6],[('x',[1,2,3])]) ar2 = xr.DataArray([[7,8,9],[10,11,12],[13,14,15]],[('x',[1,12,13]),('y',[0,5,6])]) ar1 <xarray.DataArray (x: 3)> array([4, 5, 6]) Coordinates: * x (x) int64 1 2 3 ar2 <xarray.DataArray (x: 3, y: 3)> array([[ 7, 8, 9], [10, 11, 12], [13, 14, 15]]) Coordinates: * x (x) int64 1 12 13 * y (y) int64 0 5 6 temp = combine_first(ar1, ar2) temp <xarray.DataArray (x: 5, y: 3)> array([[ 4., 5., 6.], [ 4., 5., 6.], [ 4., 5., 6.], [ 10., 11., 12.], [ 13., 14., 15.]]) Coordinates: * x (x) int64 1 2 3 12 13 * y (y) int64 0 5 6 temp = combine_first(ar2, ar1) temp <xarray.DataArray (x: 5, y: 3)> array([[ 7., 8., 9.], [ 4., 5., 6.], [ 4., 5., 6.], [ 10., 11., 12.], [ 13., 14., 15.]]) Coordinates: * x (x) int64 1 2 3 12 13 * y (y) int64 0 5 6 ```

Would this be the behavior we want from xarray's combine_first? Not entirely analogous to the Pandas function. Maybe rename it?

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Allow concat() to drop/replace duplicate index labels? 186680248
258234611 https://github.com/pydata/xarray/issues/1072#issuecomment-258234611 https://api.github.com/repos/pydata/xarray/issues/1072 MDEyOklzc3VlQ29tbWVudDI1ODIzNDYxMQ== chunweiyuan 5572303 2016-11-03T18:35:13Z 2016-11-03T20:25:12Z CONTRIBUTOR

So I fooled around with Pandas' combine_first:

```

df1 = pd.DataFrame({'x':[1,2,3],'z':[4,5,6]}).set_index('x') df1
z x
1 4 2 5 3 6 df2 = pd.DataFrame({'x':[1,12,13],'y':[0,5,6],'z':[7,8,9]}).set_index(['x','y']) df2 z x y
1 0 7 12 5 8 13 6 9 df1.combine_first(df2) z x y
1 0 4.0 12 5 8.0 13 6 9.0 ```

and was surprised that the indexes were not "outer-joined". Is this the behavior xarray wants to emulate?

As a mockup for xr.combine_first(arr1, arr2), I was thinking about using align([arr1, arr2], join="outer") to set up the template, and then go into the template to set the values right. Is that a sound approach? Muchas gracias.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Allow concat() to drop/replace duplicate index labels? 186680248
258025537 https://github.com/pydata/xarray/issues/1072#issuecomment-258025537 https://api.github.com/repos/pydata/xarray/issues/1072 MDEyOklzc3VlQ29tbWVudDI1ODAyNTUzNw== chunweiyuan 5572303 2016-11-02T23:02:03Z 2016-11-02T23:02:03Z CONTRIBUTOR

Is combine_first already implemented? I can't find it in the source code, neither could I find ops.choose.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Allow concat() to drop/replace duplicate index labels? 186680248
257001251 https://github.com/pydata/xarray/pull/1065#issuecomment-257001251 https://api.github.com/repos/pydata/xarray/issues/1065 MDEyOklzc3VlQ29tbWVudDI1NzAwMTI1MQ== chunweiyuan 5572303 2016-10-28T18:58:42Z 2016-10-28T18:58:42Z CONTRIBUTOR

Out of curiosity, how do I test inner-join vs. outer-join using only 1-D arrays? I can certainly simplify the current tests to be 2D + 1D.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  Options to binary ops kwargs 185794232
256784086 https://github.com/pydata/xarray/issues/1059#issuecomment-256784086 https://api.github.com/repos/pydata/xarray/issues/1059 MDEyOklzc3VlQ29tbWVudDI1Njc4NDA4Ng== chunweiyuan 5572303 2016-10-27T22:08:35Z 2016-10-27T22:08:35Z CONTRIBUTOR

Yup, did that. Thank you. Will request to have you as a reviewer. Much obliged.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  kwarg defaults (join="inner") for DataArray._binary_ops() 185017914
256766382 https://github.com/pydata/xarray/issues/1059#issuecomment-256766382 https://api.github.com/repos/pydata/xarray/issues/1059 MDEyOklzc3VlQ29tbWVudDI1Njc2NjM4Mg== chunweiyuan 5572303 2016-10-27T20:55:30Z 2016-10-27T20:55:30Z CONTRIBUTOR

Thanks. I will soon submit a pull request from my fork. Which branch should it go to? It seems that many people submit pull requests to master here.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  kwarg defaults (join="inner") for DataArray._binary_ops() 185017914
255246621 https://github.com/pydata/xarray/issues/1046#issuecomment-255246621 https://api.github.com/repos/pydata/xarray/issues/1046 MDEyOklzc3VlQ29tbWVudDI1NTI0NjYyMQ== chunweiyuan 5572303 2016-10-20T22:32:23Z 2016-10-20T22:32:23Z CONTRIBUTOR

Let me exhaust a few other ideas first. I'll definitely share my thoughts here first before making any commit. Thanks.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  center=True for xarray.DataArray.rolling() 182667672
253681067 https://github.com/pydata/xarray/issues/1046#issuecomment-253681067 https://api.github.com/repos/pydata/xarray/issues/1046 MDEyOklzc3VlQ29tbWVudDI1MzY4MTA2Nw== chunweiyuan 5572303 2016-10-14T00:53:54Z 2016-10-14T00:53:54Z CONTRIBUTOR

My opinion is that the nan has got to go. If we want to (1) maintain pandas-consistency and (2) use bottleneck without mucking it up, then I think we need to add some logic in either rolling.reduce() or rolling._center_result().

So here's my failed attempt:

``` def reverse_and_roll_1d(data, window_size, min_periods=1): """ Implements a concept to fix the end-of-array problem with xarray.core.rolling._center_shift(), by 1.) take slice of the back-end of the array 2.) flip it 3.) compute centered-window arithmetic 4.) flip it again 5.) replace back-end of default result with (4)

:param DataArray data: 1-D data array, with dim name 'x'.
:param int window_size: size of window.
"""
# first the default way to computing centered window
r = data.rolling(x=window_size, center=True, min_periods=min_periods)
avg = r.mean()
# now we need to fix the back-end of the array
rev_start = len(data.x) # an index
rev_end = len(data.x) - window_size - 1 \
                 if len(data.data) > window_size \
                else None  # another index
tail_slice = slice(rev_start, rev_end, -1) # back end of array, flipped
r2 = data[dict(x=tail_slice)].\
    rolling(x=window_size, center=True, min_periods=min_periods)
avg[dict(x=slice(-window_size+1, None))] = \
    r2.mean()[dict(x=slice(window_size-2, None, -1))] # replacement

return avg

```

This algorithm is consistently 8 times slower than pd.DataFrame.rolling(), for various 1d array sizes.

I'm open to ideas as well :)

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  center=True for xarray.DataArray.rolling() 182667672

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