home / github / issues

Menu
  • GraphQL API
  • Search all tables

issues: 403350812

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
403350812 MDU6SXNzdWU0MDMzNTA4MTI= 2711 Substituting values based on condition 15331990 closed 0     2 2019-01-25T22:03:10Z 2019-01-26T03:22:07Z 2019-01-26T03:22:07Z CONTRIBUTOR      

Is there a more intuitive, built-in way of substituting values based on the conditions without having to flip every logic operator?

``` import xarray as xr ds = xr.tutorial.open_dataset('air_temperature') ds['text'] = (('time', 'lat', 'lon'), np.zeros_like(ds['air'].values).astype(str))

ds['text'] = ds['text'].where(ds['air'] < 273, 'above freezing') ds['text'] = ds['text'].where(ds['air'] > 273, 'below freezing') ds['text'] = ds['text'].where(ds['air'] != 273, 'freezing')

ds.hvplot('lon', 'lat', z='air', hover_cols=['text']).opts(color_levels=[200, 273, 300]) ```

The numpy equivalent (also seems faster by 2x) ``` above_freezing = np.where(ds['air'].values > 273) ds['text'].data[above_freezing] = 'above_freezing'

below_freezing = np.where(ds['air'].values < 273) ds['text'].data[below_freezing] = 'below_freezing'

freezing = np.where(ds['air'].values == 273) ds['text'].data[freezing] = 'freezing' ```

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

Links from other tables

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