比较 numpy 中不同大小的数组

问题描述 投票:0回答:0

我正在研究一个知识库,如果它们是彼此的子集,我想在其中比较不同的坐标行。如果是,则应在较大的数组上应用右外连接。 例子

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

我用纯 python 实现了一个解决方案。

for element1 in knowledgebase:
    for element2 in knowledgebase:
        if element1 == element2:
            break
        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)

然而,由于嵌套的 for 循环,这种方法会变慢,所以我想知道 Numpy 中是否有类似的东西。

我定义了一个像这样的 numpy 数组。

knowledgebase = np.array([
list([[1,2],[3,4],[5,6]], dtype=object),
list([[1,2],[5,6]], dtype=object)
])

并想将上面的算法应用于它,但我不确定如何以有效的方式进行。也许我在数组中嵌套 python 列表的方法不是最好的方法,但我无法弄清楚如何创建具有不同行长度的 numpy 数组。

arrays python-3.x numpy multidimensional-array
© www.soinside.com 2019 - 2024. All rights reserved.