给定两个具有aa和大小不同的数组bb,我需要将其中的元素替换为最接近的aa那些元素bb。这就是我现在所拥有的。它有效[*],但我想知道是否有更好的方法。import numpy as np# Some random dataaa = np.random.uniform(0., 1., 100)bb = np.array([.1, .2, .4, .55, .97])# For each element in aa, find the index of the nearest element in bbidx = np.searchsorted(bb, aa)# For indexes to the right of the rightmost bb element, associate to the last# bb element.msk = idx > len(bb) - 1idx[msk] = len(bb) - 1# Replace values in aaaa = np.array([bb[_] for _ in idx])
2 回答
MYYA
TA贡献1868条经验 获得超4个赞
您必须计算aa
和 中每个元素之间的差异bb
,并取最小值:
aa_nearest = bb[abs(aa[None, :] - bb[:, None]).argmin(axis=0)]
添加回答
举报
0/150
提交
取消