Python - 在数组中查找对应关系

我有一个 3D 坐标的大型 2D 数组 (3x100,000) 和一个具有某些未排序坐标的第二个 1D 数组。我想找到第二个数组中包含的坐标的所有点

一个例子:

mat1 = np.array([[1,2,3],[1,2,5],[2,3,6],[10,11,12],[20,2,3]])
mat2 = np.array([1,2,3,6])

所以在这里我需要获取 0 和 2 的索引。我需要在大约 100,000 个坐标上找到每个对应关系。Python中有一个特定的函数来完成这项工作吗?

总结一下我的情况:

https://i.stack.imgur.com/L4nYx.png

一只萌萌小番薯
浏览 105回答 1
1回答

FFIVE

最简单的方法是np.isin-# a,b are input arrays - mat1,mat2 respectivelyIn [7]: np.flatnonzero(np.isin(a,b).all(1))Out[7]: array([0, 2])另一个与np.searchsorted-In [19]: idx = np.searchsorted(b,a)In [20]: idx[idx==len(b)] = 0In [21]: np.flatnonzero((b[idx]==a).all(1))Out[21]: array([0, 2])如果b未按排序顺序,请使用np.argsort(b)as sorterarg 和np.searchsorted. More info.
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python