我有一些数据,这些数据包含多个主题随时间变化的多个变量的测量值。它位于3d xarray.DataArray中,其中第一个维度索引主题,第二个维度索引变量,第三个维度索引时间。如何在每个时间步高效地添加一个新变量,该变量是当前变量的函数?例如,说我们有这个数组
import numpy as np
import xarray as xr
x = xr.DataArray(
np.random.randn(2,3,4),
dims=("unit", "variable", "time"),
coords={"variable": list("ABC")}
)
如何修改x
使其具有形状(2,4,4)
,并且新变量由每个主题的每个时间步长的变量A,B,C的范数组成?
编辑:
我想出了一种方法:
norm = np.sqrt((x*x).sum('variable'))
tfmd = norm.assign_coords(variable='norm').expand_dims('variable', 1)
x = xr.concat((x, tfmd), dim='variable')
是否有更通用的方法来进行第一行?有没有办法缩短后两行?