home / github / issues

Menu
  • GraphQL API
  • Search all tables

issues: 437765416

This data as json

id node_id number title user state locked assignee milestone comments created_at updated_at closed_at author_association active_lock_reason draft pull_request body reactions performed_via_github_app state_reason repo type
437765416 MDExOlB1bGxSZXF1ZXN0MjczOTcxOTQy 2922 Feature/weighted 10194086 closed 0     22 2019-04-26T17:09:02Z 2021-02-03T14:47:52Z 2020-03-19T14:29:43Z MEMBER   0 pydata/xarray/pulls/2922
  • [X] Closes #422
  • [X] Tests added
  • [X] Fully documented, including whats-new.rst for all changes and api.rst for new API

I took a shot at the weighted function - I added a DataArrayWeighted class, that currently only implements mean. So, there is still quite a bit missing (e.g. DatasetWeighted), but let me know what you think.

``` python import numpy as np import xarray as xr da = xr.DataArray([1, 2]) weights = xr.DataArray([4, 6]) da.weighted(weights).mean()

<xarray.DataArray ()>

array(1.6)

```

There are quite a number of difficult edge cases with invalid data, that can be discussed.

  • I decided to replace all NaN in the weights with 0.
  • if weights sum to 0 it returns NaN (and not inf) python weights = xr.DataArray([0, 0]) da.weighted(weights).mean()
  • The following returns NaN (could be 1) python da = xr.DataArray([1, np.nan]) weights = xr.DataArray([1, 0]) da.weighted(weights).mean(skipna=False)

It could be good to add all edge-case logic to a separate function but I am not sure if this is possible...

{
    "url": "https://api.github.com/repos/pydata/xarray/issues/2922/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    13221727 pull

Links from other tables

  • 0 rows from issues_id in issues_labels
  • 22 rows from issue in issue_comments
Powered by Datasette · Queries took 0.637ms · About: xarray-datasette