用另一个数组/列表的索引替换一个数组/列表中的值

时间:2016-07-23 02:37:22

标签: arrays indexing replace

我有一个看似简单的问题,如果不进行循环,我似乎无法解决这个问题。 (我正在处理非常大的数组)

为了简单起见,我们说我有一个排序数组和一个不同维度的未排序数组,例如:  x = np.array([511,512,513])和  Y = np.array([512,512,513,511,511])。 我想要一个快速函数,将y替换为在排序的min到max array x中给出的索引位置。 答案应该是输出= np.array([1,1,2,0,0])

我希望能够通过一两步完成这项工作。任何帮助将不胜感激,谢谢

1 个答案:

答案 0 :(得分:1)

searchsorted()完全符合您的要求:

import numpy as np

x=np.array([511,512,513])
y=np.array([512,512,513,511,511])
np.searchsorted(x, y) #  array([1, 1, 2, 0, 0])