我有一个约为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搜索,可能比我的二进制搜索更快。