如何使用numpy实施查找表操作

时间:2019-07-25 03:43:32

标签: python numpy opencv cv2

假设我有这样的地图:

{-1: -1, 1: 255, 2: 255, 7: 0, 8:1, ...}

,我有一个数组mm的值是映射的键,我想将数组的值从映射键转换为映射值。我该如何使用opencvnumpy来做到这一点?

1 个答案:

答案 0 :(得分:0)

NumPy解决方案是:

def numpy_map(arr, d):
    v = np.array(list(d.values()))
    k = np.array(list(d.keys()))    
    sidx = k.argsort()
    return v[sidx[np.searchsorted(k, arr, sorter=sidx)]]
print(numpy_map(<here you put the numpy array>, <here you put the dictionary>))

使用一些pandas会更容易且更理想:

print(pd.Series(<here you put the numpy array>).map(<here you put the dictionary>).values)