【问题标题】:How to efficiently check if an ordered numpy array contains a value?如何有效地检查有序 numpy 数组是否包含值?
【发布时间】:2019-11-11 22:20:24
【问题描述】:

我有一个二维 numpy 数组,我知道它是跨轴 = 1 排序的。示例:

[[0,0,1],
[0,7,1],
[1,1,0]]

如果数组包含某一行,我想检查 log(n) 的复杂度,例如:[0,7,1]。

我考虑过使用搜索排序 获取该行必须进入的索引,如果该行确实在数组中,它必须在该索引之前或之后,但我可以确定它是一种方式吗?

【问题讨论】:

    标签: python numpy search


    【解决方案1】:

    您可以创建一个返回索引的函数:

    idxlist=[[0,0,1],[0,7,1],[1,1,0]]
    
    def checkforindex(idxlist, idx):
        return idxlist.index(idx)
    
    print(checkforindex(idxlist, [1,1,0]))
    2
    

    【讨论】:

    • 不是我想要的,因为它不适用于 numpy 数组,并且它没有利用数组已排序的事实,因此它不是 log(n) 复杂度。
    猜你喜欢
    • 2017-01-23
    • 2023-02-01
    • 2017-11-01
    • 2013-05-28
    • 1970-01-01
    • 2013-06-21
    • 2012-01-10
    • 2019-08-10
    • 1970-01-01
    相关资源
    最近更新 更多