有个数组a=[1000,900,850,700,……,200],20个数,从大到小排列。
有个numpy数组b=[925.3,856.1,1002.5,……],有10万个数,随机排列。
现在要快速找到b数组中每个数在a数组中的区间位置,即遍历b数组元素,返回每个b元素第一次大于某个a元素在a中的位置。
除了循环有啥好办法吗。
解决方法
先构造一个a=ndylevel的多列矩阵
ndylevel_2d = (ndylevel.reshape(ndylevel.shape[0], -1)).repeat(iSL_2d_size, axis=1) #(层次20, 格点数10万)
计算误差ndySP
ndySP_diff=ndylevel_2d-ndySP
找到位置
ndyloc_idx=np.where(ndySP_diff > 0, 1, 0).sum(axis=0)
※ 修改:·qingchong 于 Jul 6 14:57:14 2021 修改本文·[FROM: 222.82.235.*]
※ 来源:·
https://exp.mysmth.net·[FROM: 60.13.179.*]
修改:qingchong FROM 222.82.235.*
FROM 60.13.179.*