def apply_fast_lt(value_left, value_right, index_left, index_right):
index = index_left * index_right
if len(value_left) > len(value_right):
result = np.empty(len(value_left), dtype=np.bool_)
else:
result = np.empty(len(value_right), dtype=np.bool_)
cursor_result = 0
cursor_left = 0
cursor_right = 0
for il, ir in zip(index_left, index_right):
if il & ir:
result[cursor_result] = value_left[cursor_left] <\
value_right[cursor_right]
cursor_result += 1
cursor_left += 1
cursor_right += 1
elif il:
cursor_left += 1
elif ir:
cursor_right += 1
return result[:cursor_result], index
评论列表
文章目录