python-3.x - 屏蔽 xarray 中的数据并更改 True 和 False 响应的值
问题描述
我有一个 xarray DataArray,其中包含多天的数据。我可以在一个条件下使用 .where 函数对其进行屏蔽,但我想将某个值以上的所有值设为 1,并将该值以下的所有值设为 0。理想情况下,我还想确保任何 np.数据集中的 nans 没有改变,但这不是必需的。
import numpy as np
import xarray as xr
dval = np.random.randint(5,size=[3,4,4])
x = [0,1,2,3]
y = [0,1,2,3]
time = ['2017-10-13','2017-10-12','2017-10-11']
a = xr.DataArray(dval,coords=[time,x,y],dims=['time','x','y'])
a = a.where(a>2,1,0) #ideally this would work as (condition,True val, False val)
这会导致 ValueError “如果 drop=True,则无法设置‘其他’”
对此的任何帮助将不胜感激。
解决方案
a = a.where(a>2, 1, 0)
不起作用,因为该DataArray.where
方法仅支持设置other
。基本上你在做:a = a.where(a>2, other=1, drop=0)
.
相反,您应该使用 xarray 的 3 参数xr.where
函数:
a= xr.where(a>2, 1, 0)
推荐阅读
- reactjs - 在 react.js 中将数据动态绑定到 InnerHTML
- javascript - Jquery window.resize(event) => {} 适用于检查元素,但不适用于调整 chrome(或边缘)窗口的大小
- python - 运行 python 可执行文件时没有名为“请求”的模块,即使它已安装
- python - 如何在 min 函数中使用条件语句
- python - 如何在 matplotlib 中旋转条形图?
- api - API 管理工具,允许在 API 上多次应用相同的策略
- r - 从字符串中拆分小于 4 的十进制数字
- r - `se` 在 geom_smooth(..., se = FALSE) 中代表什么?
- javascript - SyntaxError:react-table/src/publicUtils.js:当前未启用对实验语法“jsx”的支持
- excel - 如何在 Mac (parallèle) 中使用 vba 创建文件?