获取由区域包围的第一个和最后一个值的索引

2024-04-20 14:12:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个整型值的排序pytables表,其中可能包含重复的值,以及一个由起始值和结束值(end exclusive)表示的区域。你知道吗

我想找到最接近区域开始的值的索引和最接近区域结束的值的索引。结果索引必须用区域括起来。示例:

region = (35, 56)
table_data = [4, 6, 18, 18, 30, 37, 37, 49, 54, 56, 80, 84]

result: (5, 8)

这听起来像是可以用类似二进制搜索的算法来解决的问题,但我还没有弄清楚怎么做。你知道吗

由于这段代码可能在非常大的pytables上执行数千次,因此性能非常重要。最好,如果可能的话,开始和结束索引值应该在同一个循环中计算。你知道吗

有人能帮忙吗?你知道吗

编辑:

我实际上不是在处理数组,而是在处理pytables。所以建议使用对分模块的答案是行不通的。表[index]可以访问行(通过表的getslice方法)


Tags: 代码算法区域示例data排序table二进制