【发布时间】:2012-01-05 07:07:47
【问题描述】:
我有两个一维数组,x 和 y,一个比另一个小。我正在尝试查找 x 中 y 的每个元素的索引。
我找到了两种简单的方法来做到这一点,第一种很慢,第二种是内存密集型。
缓慢的方式
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 中,则可以加分。
【问题讨论】:
标签: python arrays search numpy indexing