首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >排序numpy数组的交集

问排序numpy数组的交集
EN

Stack Overflow用户
提问于 2017-10-04 19:01:08
回答 1查看 1.4K关注 0票数 7

我有一个排序的numpy数组列表。计算这些数组的排序交集的最有效方法是什么?

在我的应用程序中,我期望数组的数量小于10^4,期望单个数组的长度小于10^7,并且期望交集的长度接近p*N,其中N是最大数组的长度,其中0.99

一种快速而肮脏的方法是反复调用numpy.intersect1d()。但是,这似乎效率低下,因为intersect1d()没有利用数组排序这一事实。

EN

回答 1

Stack Overflow用户

发布于 2018-07-10 16:13:57

几个月前,我为此编写了一个基于C++的python扩展。套餐称为sortednp,可通过pip获得。多个排序的numpy数组的交集,例如a、b和c,可以用

代码语言:javascript
复制
import sortednp as snp
i = snp.kway_intersect(a, b, c)

默认情况下,这将使用指数搜索在内部提前数组索引,在交集较小的情况下,这种速度相当快。在您的示例中,如果将algorithm=snp.SIMPLE_SEARCH添加到方法调用中,可能会更快。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46572308

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档