0

这个 StackOverflow Q/A:在 numpy 数组中查找最近的值

展示了如何在一维 numpy 数组中搜索一个值。在沿坐标搜索的数据中搜索接近目标值的值的 xarray 等价物是什么

import numpy as np
import xarray as xr

def f1(x, y, z):
    return 2*x+3*y+4*z

def f2(x, y, z):
    return x/2+y/3+z/4

TestArray=xr.Dataset({'f1Res':(['xCoord', 'yCoord', 'zcoord'], f1(*np.meshgrid(x, y, z))),
            'f2Res':(['xCoord', 'yCoord', 'zCoord'], f2(*np.meshgrid(x, y, z)))},
                  coords={'xCoord':x, 'yCoord':y, 'zCood':z})

TestArray

所以第一个搜索是找到f1Res最接近目标值 -41.2 的数据集的位置

其次是同时搜索f1Res最接近f2Res目标值 0.1 的位置的结果

第三是搜索最接近 3.15、-2.5 的结果并保持xCoord打开状态yCoordzCoord

4

1 回答 1

0

所以这是我想出的一个技巧;但请注意,我尚未对其进行广泛测试。它只在 Dataarray 上测试过

```

def xarraySearch(Target, TargetVal): """ Args: Target: xarray 中的数据 TargetVal: 要搜索的目标

Return:
    location array 
"""

Res=np.abs(Target-TargetVal).argmin()
ResLoc=np.unravel_index(Res, Target.shape)
return ResLoc

```我做了一些测试;在http://xarray.pydata.org/en/stable/examples/weather-data.html上进行初步测试

于 2018-02-27T05:18:29.557 回答