为了账号安全,请及时绑定邮箱和手机立即绑定

用另一个数组中最接近的值替换numpy数组中的元素

用另一个数组中最接近的值替换numpy数组中的元素

慕虎7371278 2021-05-30 02:29:39
给定两个具有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)]


查看完整回答
反对 回复 2021-06-01
  • 2 回答
  • 0 关注
  • 169 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信