You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用NumPy高效实现坐标子集判断与右外连接操作?

坐标子集判断与右外连接的高效实现

需求说明

正在构建知识库,需处理嵌套坐标数组:每个元素是一组[x,y]坐标对,坐标对整体无顺序,但内部x在前、y在后的顺序固定。核心操作:

  • 判断不同坐标行是否互为子集
  • 若存在子集关系,对较大数组执行右外连接(提取大数组中不在子集内的元素)
  • 将新生成的连接结果加入知识库(需避免重复)

示例输入:

knowledgebase = [
[[1,2],[3,4],[5,6]],
[[1,2],[5,6]]
]

此例中第二行是第一行的子集,右外连接后得到[[3,4]],需将该结果加入知识库。

现有纯Python实现

曾尝试用集合处理,但因列表无法存入集合失败,遂用纯Python实现逻辑,但嵌套循环导致效率极低:

for element1 in knowledgebase:
    for element2 in knowledgebase:
        if element1 == element2:
            continue
        if all(x in element2 for x in element1):
            outer_join = [item for item in element2 if item not in element1]
            if outer_join not in knowledgebase:
                knowledgebase.append(outer_join)

NumPy相关问题

希望改用NumPy提升效率,但存在以下疑问:

  • 我尝试按如下方式定义NumPy数组,不确定是否为最优方案:
import numpy as np
knowledgebase = np.array([
list([[1,2],[3,4],[5,6]]),
list([[1,2],[5,6]])
], dtype=object)
  • 如何用NumPy高效实现上述子集判断与右外连接的逻辑?
  • 不清楚如何创建行长度不同的NumPy数组

内容的提问来源于stack exchange,提问作者Melon Pie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 09:47:28