给定一个沿日期和深度维度具有面积值('Af')的xarray.DataArray:xarray.DataArray 'Af' (time: 366, z: 20)
,如何获得每个日期的深度维度上的每个面积之间的差值,长度与“area”相同,且第一个差值等于第一个索引的“area”
比如:
面积_1=Af_1
面积2=面积1-面积2
面积i=面积i-面积i(i-1)
如果是在numpy中,我可以使用np.diff(array, prepend=array[0])
,但是prepend选项在xarray中不可用。有没有办法模仿xarray中的np.diff(array, prepend=0)
我对xarray(以及一般的编码)是新手,因此如果您有任何帮助,我将不胜感激
如果我理解正确,您需要执行以下操作:
您可以使用xarray的
diff
方法执行第一步,使用concat
执行第二步我认为这是最简单的方法,因为您可以利用xarray标记的维度。 但是,您实际上可以在xarray数据阵列上使用任何numpy函数。因此,您也可以使用
np.diff
。但是,最终将得到一个未标记的numpy数组,因此必须读取维度和坐标。 最简单的方法是使用data
参数的copy
方法。它将创建一个结构与原始阵列相同(DIM和coords相同)但数据不同的阵列:相关问题 更多 >
编程相关推荐