我有一个包含整数值的光栅文件,我想用其他值替换其中一些值。理想情况下,我希望使用字典指定要替换的值,例如
{10:1, 2:20}
将所有 10 个值替换为 1,将所有 2 个值替换为 20。
目前我的解决方案是使用
.where
和 .fillna
进行两步操作,但我必须对每次替换应用此过程:
import xarray as xr
(
xr.DataArray([0,10,10,10,2,2,3])
.pipe(lambda x: x.where(x!=10).fillna(1))
.pipe(lambda x: x.where(x!=2).fillna(20))
)
当然,我可以将两步操作包装在具有两个参数(要替换的值和要替换的值)的函数中,但是如何在数组上迭代应用它?或者是否有更好的方法在单个函数调用中进行替换,例如相当于 pandas.DataFrame.replace?