【问题标题】:xarray: replace only positive values with 1xarray:仅用 1 替换正值
【发布时间】:2021-06-01 19:04:11
【问题描述】:

我有一个看起来像这样的 xarray:

component_list = ['c1','c2']  
space_list = ['01_reg','02_reg','03_reg','04_reg','05_reg']

data = np.array([ [np.nan for i in range(5)],
                       [3.0, 3.0, 3.0, 0.0, 0.0] 
                   ])

xr = xr.DataArray(data, 
                   coords=[component_list, space_list], 
                   dims=['component','space'])  

我想将所有正值替换为 1,将 0 保留为 0,将 nas 保留为 nas。我尝试了以下但nas也变成了1s:

xr.where(xr>0, 1)

之前here 已经问过这个问题,但建议的解决方案不起作用。我怎样才能做到这一点?

【问题讨论】:

    标签: python-xarray


    【解决方案1】:

    一种解决方案是找到所有空值和 0 值并执行逻辑或。这将是一个条件。如果此条件不成立,请将 value 替换为 1。

    xr.where(np.logical_or(xr.isnull(), xr==0), 1)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-10-11
      • 1970-01-01
      • 1970-01-01
      • 2011-05-09
      • 1970-01-01
      • 2020-09-14
      • 1970-01-01
      相关资源
      最近更新 更多