gpt4 book ai didi

python - 有没有更快的方法来搜索 numpy 数组

转载 作者:行者123 更新时间:2023-12-05 01:47:32 24 4
gpt4 key购买 nike

我有一个包含大约 3125000 个条目的 numpy 数组,数据使用以下数据类型构建

dt = np.dtype([('startPoint', '<u8' ), ('endPoint', '<u8')])

数据来自一个文件,该文件在读入数组之前已经按 endPoint 排序。

我现在需要搜索数组并检查它是否包含特定端点,我正在使用以下代码使用二进制搜索来执行此操作

def binarySearch(array, index):
lowPoint = 0
highpoint = len(array) - 1


while (lowPoint <= highpoint):
midPoint = int((lowPoint + highpoint) / 2)

if(index == array[midPoint]['endPoint']):
return midPoint

elif(index < array[midPoint]['endPoint']):
highpoint = midPoint - 1

else:
lowPoint = midPoint + 1

return -1

我的问题是是否有更快的方法来搜索此数组中的条目。因为有一个内置的 Numpy 搜索,它可能比我的二进制搜索更快。

最佳答案

尝试 numpy.searchsorted , 你也可以使用 memory mapping如果数组太大。 searchsorted 实现为二进制搜索。

关于python - 有没有更快的方法来搜索 numpy 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25061564/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com