为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

一只萌萌小番薯 2022-07-19 15:53:24
我有一个 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
查看完整描述

1 回答

?
FFIVE

TA贡献1797条经验 获得超6个赞

最简单的方法是np.isin-


# a,b are input arrays - mat1,mat2 respectively

In [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)] = 0


In [21]: np.flatnonzero((b[idx]==a).all(1))

Out[21]: array([0, 2])

如果b未按排序顺序,请使用np.argsort(b)as sorterarg 和np.searchsorted. More info.


查看完整回答
反对 回复 2022-07-19
  • 1 回答
  • 0 关注
  • 104 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号