我有两个一维数组,其中一个比另一个小。我试图在x中找到y的每个元素的索引。Numpy:对于一个数组中的每个元素,找到另一个数组中的索引
我发现了两种天真的方法来做到这一点,第一种是慢速的,第二种是内存密集型的。
较慢的方式
indices= []
for iy in y:
indices += np.where(x==iy)[0][0]
的记忆猪
xe = np.outer([1,]*len(x), y)
ye = np.outer(x, [1,]*len(y))
junk, indices = np.where(np.equal(xe, ye))
有一个更快的方法或更少的内存密集型方法?理想情况下,搜索将利用这样一个事实,即我们在列表中搜索的不是一件事情,而是很多事情,因此稍微更适合并行化。 如果您不假定y的每个元素都在x中,则为奖励分。
啊,这是一段很棒的代码。感谢您推广Joe的代码! – Chris