我有两个一维数组,x和y,一个比另一个小.我试图在x中找到y的每个元素的索引.
我发现了两种天真的方法,第一种是缓慢的,第二种是内存密集型.
indices= []
for iy in y:
indices += np.where(x==iy)[0][0]
Run Code Online (Sandbox Code Playgroud)
xe = np.outer([1,]*len(x), y)
ye = np.outer(x, [1,]*len(y))
junk, indices = np.where(np.equal(xe, ye))
Run Code Online (Sandbox Code Playgroud)
有更快的方式或更少的内存密集型方法吗?理想情况下,搜索将利用这样一个事实,即我们在列表中搜索的不是一件事,而是很多事情,因此稍微更适合并行化.如果您不假设y的每个元素实际上都在x中,则奖励积分.
我有两个numpy数组,A和B.一个包含唯一值,B是A的子数组.现在我正在寻找一种方法来获得B中B值的索引.
例如:
A = np.array([1,2,3,4,5,6,7,8,9,10])
B = np.array([1,7,10])
# I need a function fun() that:
fun(A,B)
>> 0,6,9
Run Code Online (Sandbox Code Playgroud)