微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

xarray:仅用 1 替换正值

如何解决xarray:仅用 1 替换正值

我有一个 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,0.0,0.0] 
                   ])

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

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

xr.where(xr>0,1)

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

解决方法

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。