我有一个1维的DataArray,每个值对应一个ID。 我正在尝试以相同的格式创建一个新数组,其中包含值超出限制的所有情况的值和ID
我尝试使用xr.DataArray.where(condition,other)
,但是对于不满足条件的情况,这会产生与'nan'相同大小的数组。
#create mock array
ID = np.arange(10)
values = np.random.uniform(0.5, 20, 10)
xr.DataArray(values, dims='ID', coords={'ID':ID})
xlim = 10
示例输出可能是一个包含5个元素的数组(所有元素的值都大于10,这是我们设置的极限),以及它们与原始数组对应的ID。
答案 0 :(得分:0)
您可以只使用直接的脾气索引。
#create mock array
ID = np.arange(10)
values = np.random.uniform(0.5, 20, 10)
arr = xr.DataArray(values, dims='ID', coords={'ID':ID})
xlim = 10
arr[np.where(arr>xlim)]
<xarray.DataArray (ID: 4)> array([18.830967, 14.651416, 17.545492,
17.627902]) Coordinates: * ID (ID) int64 2 7 8 9